我需要一个 htaccess,如果 URL 中有一个?(问号),它会重定向,
一些示例 URL,
mysite.com/?p=44
mysite.com/?m=44
mysite.com/?cat=44
mysite.com/index.php?cat=44
问号可以位于“/”之后的任何位置。它应该适用于带“www”的情况,也适用于不带“www”的情况。
如果有问号,应该去newsite.com。
由于我是 htaccess 的新手,我不知道如何去做,并且需要您的帮助。
谢谢。
你可以试试这个规则
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.+)$
RewriteRule ^ http://newsite.com/? [L,R=301]
如果您使用的是 Apache v2.4,您可以使用QSD http://httpd.apache.org/docs/trunk/rewrite/flags.html#flag_qsd标志而不是?
在你的RewriteRule
目标URI
RewriteRule ^ http://newsite.com [L,R=301,QSD]
描述:
The %{QUERY_STRING}
是包含 URI 的查询字符串部分的特殊变量(例如:var=123
)并且它不包含?
因为它已经知道是否?
位于 URI 中,它是查询字符串的一部分%{QUERY_STRING}
.
The ^(.+)$
是正则表达式,表示 URI 中的查询字符串必须以开头^
并结束$
包含任何字符.
一次或多次+
内()
捕获组。
所以这基本上意味着如果任何查询字符串附加到您的 URI 条件RewriteCond
变得真实,下一行RewriteRule
完成重定向到您的新 URL 的工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)