Mod_rewrite将HTTP切换为HTTPS

时间:2013-05-14 20:19:59

标签: mod-rewrite

我正在尝试使用Bluehost提供的SSL通配符证书将一个子域切换为HTTPS。

Web根包含许多子域,我只想影响测试。子域。

进入Web根目录,我写了以下.htaccess文件:

RewriteCond %{SERVER_NAME} ^test.mydomain.com        
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}$1

然而点击http://test.mydomain.com/admin/index.php并未将我重定向到https://test.mydomain.com/admin/index.php

即使删除了SERVER_NAME的条件,它仍然无法正常工作。

我的重写规则不好吗?

1 个答案:

答案 0 :(得分:0)

好吧,首先我在错误的.htaccess文件中。我需要转到我的子域名目录。

然后,简单地将其从HTTP切换到HTTP显然会导致某种重定向到www。行为。

我不得不

A)保留不适合测试的现有规则。 B)添加测试。规则。

它增加了很多。

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} !^test.example.com$  
RewriteRule ^index\.php$ - [L]

RewriteCond %{HTTP_HOST} !^test.example.com$  
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteCond %{HTTP_HOST} ^test.example.com$     
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

RewriteCond %{HTTP_HOST} ^test.example.com$   
RewriteCond %{REQUEST_URI} !^/test/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /test%{REQUEST_URI} 

RewriteCond %{HTTP_HOST} ^test.example.com$ 
RewriteRule ^(/)?$ test/admin/index.php [L]