使用mod_rewrite重写URL

时间:2012-12-27 16:28:35

标签: mod-rewrite

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

鉴于此网址,

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,如果是,你有指针吗?

1 个答案:

答案 0 :(得分: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]指令。