我正在尝试使用htaccess管理我网站的规范。
我最近切换到HTTPS,现在我的旧规则无效:
#URLS ALWAYS CHANGED TO WWW
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
#PREVENT TRAILING '/' AT END OF URLS
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# PREVENT CANONICALIZATION DUPLICATES
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index\.php
RewriteRule ^(.*)index.php$ http://www.example.com/$1 [R=301,L]
虽然有一些问题。如果通过HTTP建立连接,我希望它保持为HTTP。
我不想强制使用HTTPS,因为出于访问者安全原因我有时需要HTTP - 因此嵌入式内容无法搭载我的https权限:
普通人不明白IFRAME是什么。他们会的 查看顶部栏中的挂锁和https,并认为该网站是安全的 提供他们的信用卡详细信息 - 实际上他们可能正在访问 不受信任的HTTP站点(或更糟)。因此显示的页面 不受控制的IFRAME内容我总是显示为http。
如果正在使用错误的网址,页面301会重定向。但我宁愿用htaccess做更多冗余和更快的响应。
所以这基本上就是我需要做的事情: