301重定向:https://www.domain.co.uk/?404;http://www.domain.co.uk:80/sn-down-to-earth.html
至https://www.domain.co.uk/
在我的.htaccess
文件中,我有以下内容:Redirect 301 "/?404;http://www.domain.co.uk:80/sn-down-to-earth.html" https://www.domain.co.uk/
我有几百个重定向在.htaccess
文件已经都工作正常。我认为这与?
或;
在网址?
1条答案
按热度按时间h5qlskok1#
我认为这与URL中的
?
或;
有关?是的,它与
?
有关,它在URL中分隔查询字符串。mod_alias
Redirect
指令只匹配URL-path,而不是查询字符串(第一个?
之后的所有内容)。要匹配查询字符串,您需要使用mod_rewrite,并使用 condition 检查QUERY_STRING
服务器变量。在您的示例中,URL-path为 empty。请尝试以下操作:
RewriteCond
指令的第二个参数)上的=
前缀使其成为字典序(精确匹配)字符串比较(与正则表达式相反)。QSD
(查询字符串丢弃)标志从重定向响应中删除查询字符串。这需要Apache 2.4。默认情况下,查询字符串会通过。