我正在尝试强制我的网站通过https://
加载,并在位于最顶层公共目录的www.
文件中压制.htaccess
主机名。
mod_rewrite
已开启。我知道这在PHP中很容易实现,但我想在我的.htaccess
文件中执行此操作。
这是我的方法:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{SERVER_PORT} ^443$
RewriteCond %{HTTP_HOST} ^(www\.)(.+)$ [NC,OR]
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)$ [NC]
RewriteRule ^ https://%2%{REQUEST_URI} [R=301,L]
</IfModule>
这适用于谷歌浏览器(37.0.2062.124),因为我认为整个过程是在服务器端处理的,并且应该在客户端以相同的方式运行,这让我感到惊讶。
我还尝试使用%{HTTPS} =off
和%{HTTPS} !=on
而不是检查端口。