网站最近转移到https,一切顺利但一些网址导致重定向链。所需的URL是https://www版本。但是http://版本导致三次301重定向,https://有两次,http://www有一次。
我发现了我认为通过使用以下
来解决这个问题的方法RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
取代了这个:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
#RewriteCond %{THE_REQUEST} ^.*/index.php
#RewriteRule ^(.*)index.php$ http://www.example.com/$1 [R=301,L]
Redirect 301 /index.html http://www.example.com/
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
这是完整的.htaccess文件:
https://pastebin.com/g9EDJrjG
然而,这使得所有内部网址(类别页面)都导致404错误。除主页外的所有内容。我也注意到它没有改变多重定向问题(我使用了一个在线http状态检查器)
经过一番研究后,我认为可能是因为这条线被注释掉了 -
#Options +FollowSymLinks
但我刚刚检查过,它也被注释掉了.htaccess的所有其他版本,以前哪些内部链接工作。
我还看到只是简单地将Magneto'自动重定向到基本URL'打开到ON,清除Magento缓存并再次检查,但这对多个重定向也没有影响。
是否有一些盲目明显的东西,我错过了影响重定向/ 404消息?我只是使用基于网络的htaccess检查程序来验证,这并没有标记任何问题,但它确实不那么准确。
我在这里搜索了答案,这个网站显示了所有标志和语法及其含义和使用示例,以及Google到目前为止。