我的.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
我需要文件名为detail.php
或template.php
的任何网址,查询字符串中的任意数量的参数都会重定向到主页
我试过了RewriteRule ^detail.php?(.*) / [R=301,NC,L]
这也没用。任何帮助或指南将不胜感激。
答案 0 :(得分:2)
用这一行替换你的2条RewriteRule行:
RewriteRule ^(?:detail|template)\.php$ /? [R=301,NC,L]
请注意/
之后的问号,这是一种特殊的mod_rewrite语法,用于从原始URI中删除任何现有的查询字符串。
另外请记住,RewriteRule只匹配没有查询字符串的URI,因此^detail.php?(.*) / [R=301,NC,L]
的尝试将无法按预期工作。