双重条件重定向

时间:2017-01-25 11:56:08

标签: apache .htaccess redirect

我希望将我的网页永久重定向到https + www。

我使用下面的代码但是当我输入https://example.com时它不起作用。它什么都不做,并且在没有添加www的情况下显示页面。

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L,NE]

2 个答案:

答案 0 :(得分:1)

试试这样:

RewriteEngine on

RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.example.com%{REQUEST_URI} [R=301,L,NE]

确保在测试之前清除缓存。

答案 1 :(得分:1)

给定的重定向规则没有问题。似乎问题是OP正在执行来自<VirtualHost *:80>部分的显示规则。如果请求为https://,那么这些规则显然不会触发。 OP可以做两件事之一来解决问题:

  1. 同样在<VirtualHost *:443>部分中保留相同的重定向规则 - OR
  2. 将规则保留在.htaccess
  3. 等常见位置