【发布时间】:2014-02-02 19:20:14
【问题描述】:
我一直在为一些 htaccess 重定向而苦苦挣扎。我只是花了一些时间在堆栈上阅读和搜索,但找不到适用于我的场景的 anwser。
我正在将旧客户网站的 301 重定向到新网站。旧页面有我想从 url 中删除的参数查询。
/menu.php?idCategorie=29&idDetail=172
到
/new-website-page/
我有多个查询要做,这里有几个例子:
/menu.php?idCategorie=29&idDetail=172
/menu.php?idCategorie=29&idDetail=182
/menu.php?idCategorie=29&idDetail=184
/menu.php?idCategorie=29&idDetail=256
所有链接到不同的新页面。
这是我尝试过的:
RewriteCond %{QUERY_STRING} idDetail=172
RewriteRule ^menu.php(.*) /new-page/? [R=301,L]
我的重定向正确,但 URL 保留了查询字符串:
http://website.com/new-page/?idCategorie=29&idDetail=172
我也试过这个:
RewriteRule ^menu.php?idCategorie=29&idDetail=172$ http://website.com/new-page/? [L,R=301]
还有这个:
RewriteCond %{QUERY_STRING} idDetail=172(.*)$
RewriteRule ^menu.php /new-page-name?$1 [L,R=301]
而且没用(最后还是有查询字符串)
谢谢!
【问题讨论】:
标签: regex apache .htaccess mod-rewrite url-rewriting