.htaccess 301使用htaccess将URL重定向到主页无效

clj7thdc  于 2023-04-07  发布在  其他
关注(0)|答案(1)|浏览(145)

301重定向:https://www.domain.co.uk/?404;http://www.domain.co.uk:80/sn-down-to-earth.htmlhttps://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文件已经都工作正常。我认为这与?;在网址?

h5qlskok

h5qlskok1#

我认为这与URL中的?;有关?
是的,它与?有关,它在URL中分隔查询字符串。
mod_alias Redirect指令只匹配URL-path,而不是查询字符串(第一个?之后的所有内容)。要匹配查询字符串,您需要使用mod_rewrite,并使用 condition 检查QUERY_STRING服务器变量。在您的示例中,URL-path为 empty
请尝试以下操作:

RewriteEngine on

RewriteCond %{QUERY_STRING} =404;http://www.domain.co.uk:80/sn-down-to-earth.html
RewriteRule ^$ / [QSD,R=301,L]
  • CondPattern*(RewriteCond指令的第二个参数)上的=前缀使其成为字典序(精确匹配)字符串比较(与正则表达式相反)。

QSD(查询字符串丢弃)标志从重定向响应中删除查询字符串。这需要Apache 2.4。默认情况下,查询字符串会通过。

相关问题