奇怪的网址重写行为

时间:2014-01-16 16:32:32

标签: regex apache .htaccess mod-rewrite redirect

我必须重定向我的所有网址:

http://www.domain.ltd/foo/bar/var1/var2/var3.html 
to
http://www.other.ltd/search?q=var3&long=0

我尝试了以下内容:

RedirectMatch 302 ^foo/bar/(.+)/(.+)/(.+)\.html$ http://www.other.ltd/search?q=$3&long=0

它似乎工作但我的最后一个网址仍然坚持我的var3变量的结尾:

http://www.other.ltd/search?q=var3/foo/bar/var1/var2/var3.htmllong=0

有任何线索吗?

1 个答案:

答案 0 :(得分:1)

使用mod_rewrite规则剥离原始查询字符串。

将此代码放入DOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On
RewriteBase /

RewriteRule ^foo/bar/([^/]+)/([^/]+)/([^.]+)\.html$ /search?q=$3&long=0 [R=301,L,NE]