无法使用htaccess规则:在所有页面上强制使用SSL,在两个特定页面上强制使用非SSL

时间:2015-07-08 21:51:33

标签: apache .htaccess

我不是htaccess专家,但谷歌搜索了两个小时后我放弃了。也许你可以帮助我?

我的整个网站都在SSL上。但是,我有两个页面引用了来自其他地方的非安全动态内容。我需要将这些设置为$('<div/>').html(data).find('.js_outer_div script').each(...) 而不是http

我的规则的第一部分有效。除了这两个页面外,所有站点都被强制使用SSL。但是,最后一部分并不强制:将这两个页面强制为非SSL。这可能是非常愚蠢的,但是有人看到我哪里出错了吗?

https

1 个答案:

答案 0 :(得分:2)

您的第二个SSL规则中需要[OR]标记。你基本上说的两个条件是:

  • 请求必须为HTTPS
  • URI 必须以/webshop2/localize.php
  • 开头
  • URI 必须以/webshop2/layoutstripper.php
  • 开头

如您所见,最后两个条件总是会失败,因为请求不能同时出现。如果你在那里添加一个[OR]标志,如果URI是一个或另一个,它就是真的:

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} ^/webshop2/localize\.php [NC,OR]
RewriteCond %{REQUEST_URI} ^/webshop2/layoutstripper\.php [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]