2016-04-26 73 views
1

阅读所有有关.htaccess和重定向的相关答案,以及一些使用.htaccess重写条件和规则的实验后,我的问题依然存在。.htaccess将规则重定向到www和htpps,但排除子域

我设法强制www和https为我的Magento网站。以下是我目前所面对的:

RewriteCond %{HTTPS} off 
RewriteRule .* https://www.example.com%{REQUEST_URI} [L,R=301] 

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule .* https://www.example.com%{REQUEST_URI} [L,R=301] 

public_html/test/创建子域test.example.com和测试环境后,我想从上面的规则中排除,因为子站点既没有一个HTTPS的WWW。

我试图把这个异常放在上面的规则中,但没有成功。

RewriteCond %{HTTP_HOST} !^test\.example\.com$ 

例如,当我输入http://test.example.com/admin/进入Magento管理,它重定向我https://www.example.com/admin/我一定要还可以编辑public_html/test/.htaccess file

预先感谢您

回答

0

是的,这是因为你的规则,第二规则检查的发生,如果主机值不以WWW重定向主机开始www.example.com这个规则也使用www将任何非www的http主机重定向到主域。

为了解决这个问题,你可以使用一个单一的规则,以HTTP重定向到https:WWW不包括子域

RewriteEngine on 

RewriteCond %{HTTP_HOST} !^test\.example\.com$ 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ 
RewriteRule^https://www.%1%{REQUEST_URI} [NE,L,R] 
+0

谢谢您的回答。上述规则将正常工作,并从https和www中排除子域名。但是我必须将我的测试网站的管理员名称重命名为http://test.example.com/testadmin/,因此它不会重定向到https://www.example.com/admin/。但是当我尝试登录到我的测试管理员时,它会再次加载生产管理面板。 – user37968

相关问题