如何使用mod_rewrite更改URL的路径和文件名

时间:2008-09-19 20:27:39

标签: apache mod-rewrite

我想拿网址: http://www.mydomain.com/signup-12345

实际上给他们: http://www.mydomain.com/signup/?aff=12345

我没有mod_rewrite的历史,HELP!

3 个答案:

答案 0 :(得分:5)

试试这个:

RewriteRule ^ / signup - (\ d +)/ $ / signup /?aff = $ 1 [I]

答案 1 :(得分:2)

我发现比较难以找到的是如何反转你正在做的事情,你需要找出部分查询字符串的值。

例如:

如果您想重写Url: http://www.example.com/signup- -script。的 ASP ?的 AFF = 12345

于: http://www.example.com/signup- -script。的 PHP ?的 affID = 12345

你可以使用:

RewriteCond %{query_string}& ^aff=((.+&)|&)$   
RewriteRule ^/signup-old-script.asp$    /signup-new-script.php?affID=%2 [L,R]

请注意重写规则中的符号,而不是 $ 符号。

我不得不这样做,所以我可以在一个新网站上支持旧的flash地图,这个地图链接到查询字符串中带有ID的“.cfm”文件。

答案 2 :(得分:1)

据我所知,

标志会导致RewriteCond被忽略。 - 用于“忽略大小写” - 来自IsapiRewrite版本2