2014-10-02 52 views
0

我有多个域名停放和使用:只重定向.htaccess /服务器的根目录并保持DIR单独?

RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC] 
RewriteCond %{HTTP_HOST} !^$ 
RewriteRule ^/?(.*) http://www.domain.com/$1 [L,R,NE] 

他们重定向到一个默认的域名,但我也想任何HTTPS流量重定向到HTTP,但不强求其他领域,如/服务器状态,管理员, phpMyAdmin的。那可能吗?

我可以做到这一点,而不会导致循环,并保持它不是强制443/HTTPS或HTTP/80流量?

回答

0

感谢您的帮助Anubhava

我想通了这个问题,因为我有今天的时间来完成它。我还是用我的规则来停放的域名转发到我的默认域这是下面这样:

RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC] 
RewriteCond %{HTTP_HOST} !^$ 
RewriteRule ^/?(.*) http://www.domain.com/$1 [L,R,NE] 

它的伟大工程,加快然后301规则。

我也有一个扩展,将后端的所有流量重定向到https,但不是强制。如果需要,我也可以选择强制其他插件和模块等重定向。

我设法找到罪魁祸首!问题是cloudflare.com保留我的缓存并将我的连接重新定向为http和https的循环。

如果您有CDN,请确保清除缓存或确保https选项正确无误。

问题已解决。

0

您可以为https重定向其他规则也有一些例外:

RewriteCond %{HTTPS} on 
RewriteCond %{THE_REQUEST} !\s/(server-status|phpmyadmin|administrator) 
RewriteRule^http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NC,NE] 

RewriteCond %{HTTPS} off 
RewriteCond %{THE_REQUEST} \s/(server-status|phpmyadmin|administrator) 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NC,NE] 

RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC] 
RewriteCond %{HTTPS}s on(s)| 
RewriteRule^http%1://www.domain.com/%{REQUEST_URI} [L,R=301,NE] 
+0

这给了我错误消息,http和www.domain.com的https被禁止。它确实让我进入phpmyadmin,管理员和服务器状态。 – Queasy 2014-10-05 03:39:11

+0

禁止的错误不能由这两条规则引起。你的.htaccess中还有其他规则吗? – anubhava 2014-10-05 04:22:14

+0

这里是htaccess文件http://www.snipplr.com/view/78916/htaccess/ – Queasy 2014-10-05 04:47:43

相关问题