.htaccess 由于';,htaccess未重定向';

.htaccess 由于';,htaccess未重定向';,.htaccess,.htaccess,我的htaccess有问题,我们移动了一个网站,他们的旧网站有很多重复页面,有?cat_id=88等。。。在他们身上,我试图重定向页面,但它不起作用,我把重定向代码放在下面,我已经将mantra.html重定向到/mantra,但是带有?cat_id=79的版本没有重定向,它只是忽略了?之后的所有内容 Redirect 301 /mantra.html?cat_id=79 http://www.website.co.uk/Mantra 重定向只接受路径,不接受带有querystring的路径。

我的htaccess有问题,我们移动了一个网站,他们的旧网站有很多重复页面,有
?cat_id=88
等。。。在他们身上,我试图重定向页面,但它不起作用,我把重定向代码放在下面,我已经将
mantra.html
重定向到
/mantra
,但是带有
?cat_id=79
的版本没有重定向,它只是忽略了
之后的所有内容

Redirect 301 /mantra.html?cat_id=79 http://www.website.co.uk/Mantra

重定向只接受路径,不接受带有querystring的路径。你可以使用mod_重写

RewriteEngine on
RewriteCond %{QUERY_STRING} ^cat_id=79$
RewriteRule ^mantra\.html$ /Mantra? [R=302,L]
一旦开始工作,将302更改为301(浏览器会主动缓存301,使调试成为一场噩梦)


编辑在末尾添加了一个
,以删除任何查询字符串。如果querystring中没有其他数据,Apache将删除
,因此最终用户将永远看不到它。

如果要删除现有查询字符串,请不要忘记目标末尾的
。很好的建议Ignacio。将其添加到帖子中。