已阅读过很多帖子,但仍无法弄明白。
我有一个使用大量查询参数的旧页面。我想将流量重定向到此页面到我的主页。当参数存在时,正常的301重定向不起作用。
我想:
全部重定向到example.com /.
此代码已经在我的htaccess中了:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
我在下面立即添加了以下内容:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/page\.php$
RewriteCond %{QUERY_STRING} a=(.*)$
RewriteRule ^(.*)$ https://www.example.com/? [R=301,L]
Redirect 301 /page.php https://www.example.com/
发生的事情是只触发了最后一行。如果我导航到example.com/page.php,它将按预期重定向。
但如果我导航到example.com/page.php?a=1,那么它会重定向到example.com/?a=1并给我404错误。
有没有人有解决方案?感谢
答案 0 :(得分:1)
无需捕获query string
,因为您希望将所有流量重定向到page.php
,包括page.php?query
,因此,只需匹配此页面URI:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/page\.php$
RewriteRule ^(.*)$ https://www.example.com/? [R=301,L]
注意:清除浏览器缓存然后测试