htaccess:在单个页面上强制https://到http://

时间:2017-08-08 14:05:43

标签: .htaccess http https

由于特定网页上的iframe从http://域中提取内容,因此我的网站为https://会出现冲突问题。

如何让htaccess在特定页面上恢复为http,例如:https://www.example.com/about被重定向到http://www.example.com/about

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

我认为你说冲突是因为浏览器警告。但最终,http降级也会产生警告。您最佳的操作方法是:如果可用,则将加框内容加载到https上,或者在新选项卡或窗口中打开加框内容。在今天的世界中,由于点击劫持和XSS攻击,iframe不受欢迎,并且浏览器即将发生一些变化,这些变化将使其变得非常困难(您将需要另一个域允许您在您的域上构建其内容或浏览器不会加载它),所以现在最好远离它。

答案 1 :(得分:0)

您可以使用以下规则执行此操作:

RewriteEngine On

RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteCond %{REQUEST_URI} !^\/(about)
RewriteRule (.*) https://%{HTTP_HOST}/$1 [L,R=301]

RewriteCond %{HTTP:X-Forwarded-SSL} =on
RewriteCond %{REQUEST_URI} ^\/(about)
RewriteRule (.*) http://%{HTTP_HOST}/$1 [L,R=301]

这样做首先检查HTTP是否未打开,如果没有,则它会将所有内容转发到除目录about之外的HTTP。第二个规则检查HTTP是否打开,如果是,则它会将about重定向回HTTP。

确保在测试之前清除缓存。