如果网址中有?(问号),我需要一个重定向的htaccess,
一些示例网址
mysite.com/?p=44
mysite.com/?m=44
mysite.com/?cat=44
mysite.com/index.php?cat=44
问号可以在" /"之后的任何地方。它应该适用于" www"没有它。
如果有问号,则应转到newsite.com。
因为我是htaccess的新手,所以我不知道该怎么做以及来自你的新帮助。 感谢。
答案 0 :(得分:3)
您可以尝试此规则
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.+)$
RewriteRule ^ http://newsite.com/? [L,R=301]
如果您使用的是Apache v2.4,则可以在?
目标URI中使用QSD
标记而不是RewriteRule
RewriteRule ^ http://newsite.com [L,R=301,QSD]
说明强>
%{QUERY_STRING}
是特殊变量,它包含URI的查询字符串部分(例如:var=123
)并且它不包含?
,因为它已经知道?
在URI中,它是查询字符串%{QUERY_STRING}
的一部分。
^(.+)$
是正则表达式,表示URI中的查询字符串必须以^
开头,并且结束$
并且包含任何字符.
一次或多次{{1}在+
捕获组内。
所以这基本上意味着如果任何追加到您的URI的查询字符串条件()
变得真实,而下一行RewriteCond
会将其工作重定向到您的新网址。