【问题标题】:URL rewrite using mod rewrite使用 mod rewrite 重写 URL
【发布时间】:2012-12-27 16:28:35
【问题描述】:

是否可以在重写中执行以下操作?

鉴于此网址,

http://www.stockportovenrepairs.co.uk/spares/cda/cooker-oven/cd200ss/element-12345/12/

我目前正在重写这部分 cda/cooker-oven/cd200ss/element-12345/12/url=cda/cooker-oven/cd200ss/element-12345/12/ 与 QSA。

这很好用,但更适合我的情况是如果我可以将其重写为:

url=cda;cooker-oven;cd200ss;element-12345;12;

即将正斜杠交换为分号,然后将其附加到查询字符串。这甚至可以通过 mod-rewrite 实现吗?如果可以的话,你有什么建议吗?

【问题讨论】:

    标签: mod-rewrite


    【解决方案1】:

    如果您在 Apache 中使用 mod-rewrite,请尝试反向引用(假设 url 将具有已知数量的段或设置格式)。类似的东西

    RewriteRule /spares/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/ http://host/something.do?url=$1;$2;$3;$4;$5; [NE]
    

    这应该将您的示例重写为

    http://host/something.do?url=cda;cooker-oven;cd200ss;element-12345;12;
    这看起来像你想要的。

    编辑:为了防止分号被转义,您需要添加上面的 [NE] 指令。

    【讨论】:

    • 嗨,谢谢你的回答,是的,它看起来很适合我的需要,我唯一不清楚的是,段数将是 1、2、3 或 4。我可以仍然暗示这个
    • 不幸的是,我认为您需要为每个可能的段数执行单独的重写规则。据我所知,也没有用分号替换斜杠的替换指令。
    • 感谢您的宝贵时间,您帮了我很多忙
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多