3

我的 .htaccess 文件中有以下内容可将 http 请求重定向到 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 中正确重定向。这托管在http://newco.phpfogapp.com 的 phpfog 上,ssl 在负载平衡处终止,所以我不得不使用 %{HTTP:X-Forwarded-Proto} 来检查 https。这会导致其他浏览器出现任何问题吗?有任何想法吗?

4

1 回答 1

-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 文档

于 2012-06-23T04:50:24.123 回答