2012-06-22 44 views
3

我有我的.htaccess文件重定向http请求下到httpshtaccess的重定向到HTTPS浏览器的差异

RewriteEngine On 

RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteCond %{HTTP_HOST} ^newco.local,^newco.dev 
RewriteRule^https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

这个正确重定向在Firefox而不是Chrome或Safari。这是托管在phpfog在http://newco.phpfogapp.com ssl终止在负载平衡,所以我不得不使用%{HTTP:X-Forwarded-Proto}来检查https。这可能会导致与其他浏览器的任何问题?有任何想法吗?

回答

-1

尝试%{HTTPS}变量。

如果请求是HTTPS,变量= on,否则,它= off

例如代码:

RewriteCond %{HTTPS} !=on 
RewriteCond %{HTTP_HOST} ^newco.local,^newco.dev 
RewriteRule^https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 

这里是充分Apache Mod_Rewrite Documentation

+0

OP明确指出,HTTPS在负载平衡器结束,因此,所有的请求获得在阿帕奇端口80(正常HTTP),所以'的RewriteCond %{HTTPS}!= on'不是一个选项。 –