我正在使用托管两个域(均使用SSL)的HostGator帐户。我也在其中设置了不使用SSL的子域。我有一个重定向设置,以便http将重定向到https,但我在使用子域时遇到问题。
以下是我需要做的事情:
http://site1.com - > https://site1.com
http://www.site1.com - > https://site1.com
dev.site1.com - >没有重定向
http://site2.com - > https://site2.com
http://www.site2.com - > https://site2.com
dev.site2.com - >没有重定向
现在发生的事情是,当我访问dev.site2.com时(无论我是否输入https)我看到的是https://site1.com,虽然它似乎没有重定向,因为地址酒吧仍然显示dev.site2.com
以下是我在htaccess中所拥有的内容:
RewriteEngine On
RewriteBase /~hostgatorusername/
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteCond %{HTTP_HOST} !=dev.*
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /~hostgatorusername/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /~hostgatorusername/index.php [L]
</IfModule>
# END WordPress
我仍然在努力完全掌握htaccess,所以如果有人能帮我理解我做错了什么,我会很高兴。谢谢!
更新:我还需要https://www.site1.com重定向到https://site1.com和 https://www.site2.com重定向到https://site2.com
答案 0 :(得分:0)
试试这段代码:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /~hostgatorusername/
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^dev\. [NC]
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule .* https://%1%{REQUEST_URI} [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /~hostgatorusername/index.php [L]
</IfModule>
# END WordPress