我正在使用以下脚本将发送到http的所有请求redirect到https
RewriteEngine On
RewriteCond%{HTTPS}closures
RewriteRule(。*) https://% {HTTP_HOST}%{REQUEST_URI}
我需要为这个规则添加一个exception(对于一个特定的页面),因为它正在加载一个js,它在一个没有https的服务器上。 在FF,Chrome,它的工作。 在IE中显示一个令人讨厌的警告。
任何想法如何添加一个规则到我现有的mod_rewrite代码?
你可以添加一个否定testing的第二个RewriteCond (以!前缀)。 它将与您现有的RewriteCond进行“与”运算。
编辑:
例:
RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} !^/pageregex RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
其中pageregex是一些正则expression式,用于描述您想要作为例外的页面。 请注意,正则expression式可能只是一个固定的string,可以唯一地标识特定的页面。
如果您已经正确安装并configuration了mod_proxy,则还可以通过https来提供该.js文件。
RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} !^/pageregex RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [C] RewriteRule ^/home/to/js/file.js http://example.com/home/to/js/file.js [P]
[C]标志允许执行以下规则,就像它是第一个重写规则的一部分一样。 [P]标志告诉mod_rewrite使用mod_proxy来获取指定的.js文件并透明地提供。 这可能会使IE停止“安全和不安全的内容在同一页上,你想继续吗?” 因为.js文件将被安全地传送。