除非我们使用子域名,否则我想强制使用HTTPS:foo.domain.com。 当我在浏览器的隐身模式下打开该子域时,它可以正常工作。 HTTPS未添加。当我在正常模式下在浏览器上打开该子域时,我收到一条错误消息:"您的连接不是私有的"。我可以看到我浏览器上的网址现为: https ://foo.domain.com。清除浏览器的缓存似乎无法修复它。
RewriteBase /
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^foo\. [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
谢谢!
答案 0 :(得分:0)
这听起来像是一个缓存问题,或者像https这样的附加组件无处不在。如果它在隐私浏览或隐身模式下工作,它也可以在正常模式下工作。如果隐私浏览/隐身模式的行为与正常模式不同,则表示某些内容仍然在正常模式下缓存,或者您在正常模式下启用了加载项,而您在私有模式下未启用该加载项。我发现301重定向是令人惊讶的持久性,甚至在删除我认为是某个站点的所有历史记录之后仍然存在。
目前测试您的网站似乎对我来说很好。我建议不使用301重定向,直到一切按预期工作。当一切按预期工作时,您可以根据需要将302(临时)重定向转换为永久重定向。
来自其他stackexchange网站的以下两个问题可能会有所帮助:https://superuser.com/questions/304589/how-can-i-make-chrome-stop-caching-redirects和https://superuser.com/questions/467999/clear-301-redirect-cache-in-firefox。