Php .htaccess:重定向到HTTPS主域
我有一个非常奇怪的问题,我已经花了很多时间调查,但没有找到解决办法 基本上,我在服务器中有几个域,但为了简单起见,让我们假设只有两个域: example.co.nz main example.com 我想满足两个要求: a我希望所有流量从2重定向到1 b我希望所有HTTP通信都重定向到HTTPS 所以,基本上,在一句话中,我希望所有的流量,无论我在位置栏中键入什么样的URL模式,都能简单地进入 我在根目录中编写了一个.htaccess文件,如下所示:Php .htaccess:重定向到HTTPS主域,php,apache,.htaccess,mod-rewrite,redirect,Php,Apache,.htaccess,Mod Rewrite,Redirect,我有一个非常奇怪的问题,我已经花了很多时间调查,但没有找到解决办法 基本上,我在服务器中有几个域,但为了简单起见,让我们假设只有两个域: example.co.nz main example.com 我想满足两个要求: a我希望所有流量从2重定向到1 b我希望所有HTTP通信都重定向到HTTPS 所以,基本上,在一句话中,我希望所有的流量,无论我在位置栏中键入什么样的URL模式,都能简单地进入 我在根目录中编写了一个.htaccess文件,如下所示: SetEnv TZ <IfModul
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或服务器本身有关
任何帮助都将不胜感激。发现问题
重定向实际上正在工作。当您尝试访问该网站时,将在收到有关证书的警告。接受警告后,您将被重定向到
这是因为SSL检查是在.htaccess重写之前应用的。由于没有为www.example.com安装证书,您将收到警告
唯一的解决方法是为www.example.com安装一个SSL证书。这有点错误,检查适用,因为您试图在没有有效证书的域名上访问HTTPS,一旦用户接受,它就会尝试使用有效证书访问域。简单地说,在这个过程中,它们是两个不同的请求。我所提到的正是你所说的。所以它确实是正确的。您可以删除-1吗,因为这正是问题所在,而且它是正确的:SSL检查是在.htaccess重写之前应用的。