在.htaccess中抑制www主机名并强制HTTPS

时间:2014-10-01 08:23:37

标签: apache .htaccess mod-rewrite https http-redirect

我正在尝试强制我的网站通过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而不是检查端口。

0 个答案:

没有答案