.htaccess:重定向到HTTPS主域

时间:2014-09-17 17:31:49

标签: php apache .htaccess mod-rewrite redirect

我有这个非常奇怪的问题,我已经花了很多时间调查,但未能找到解决方案。

基本上,我在服务器中停放了一些域名,但为简单起见,我们假设只有2个域名:

  1. example.co.nz(main)
  2. example.com
  3. 我有两个要求我满足的要求:

    • a)我希望从(2)的所有流量重定向到(1)
    • b)我希望将所有HTTP流量重定向到HTTPS

    所以基本上,在一句话中,无论我在位置栏中输入什么网址格式,我都希望所有流量都转到https://www.example.co.nz


    我在root中写了一个.htaccess文件,如下所示:

    SetEnv TZ
    
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
    
        RewriteCond %{HTTPS} !^on [OR]
        RewriteCond %{HTTP_HOST} !^www\.example\.co\.nz
        RewriteRule (.*) https://www.example.co.nz/$1 [R=301,L]
    
        RewriteCond %{REQUEST_URI} ^/(system|lib)(.*)$
        RewriteRule ^(.*)$ index.php?/$1 [L]
    
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ index.php?/$1 [L]
    </IfModule>
    

    以下作品:

    以下内容未被重定向:


    • 有人会碰巧为什么会发生这种情况吗?

    我想知道这是否与我的htaccess或服务器本身有关。

    任何帮助都会受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

发现问题。

重定向实际上正在运行。当您尝试访问该网站时,您会在https://www.example.com处收到有关证书的警告。接受警告后,您将被重定向到https://www.example.co.nz/

这是因为在.htaccess重写之前应用了SSL检查。由于没有为www.example.com安装证书,因此会收到警告。

唯一的方法是为www.example.com安装SSL证书。