1

我的 .htaccess 文件中有以下规则设置

RewriteRule ^detail.php / [R=301,NC,L]
RewriteRule ^tempate.php / [R=301,NC,L]

这些所做的是在调用 detail.php 和 template.php 时执行 301 重定向,虽然这有效,但当我输入时它不起作用,mydomain.co.za/detail.php?product_id=2432&category=700然后它将网站重定向到mydomain.co.za/?product_id=2432&category=700

我需要文件名所在的任何 urldetail.phptemplate.php查询字符串中包含任意数量的参数来重定向到主页

我试过RewriteRule ^detail.php?(.*) / [R=301,NC,L]了,这也不起作用。任何帮助或指导将不胜感激。

4

1 回答 1

2

用此行替换您的 2 RewriteRule 行:

RewriteRule ^(?:detail|template)\.php$ /? [R=301,NC,L]

请注意 后面的问号/,这是一种特殊的 mod_rewrite 语法,用于从原始 URI 中删除任何现有的查询字符串。

另请记住,RewriteRule 仅匹配没有查询字符串的 URI,因此您的尝试^detail.php?(.*) / [R=301,NC,L]不会按预期工作。

于 2013-04-16T06:08:21.793 回答