【发布时间】:2018-04-08 15:33:28
【问题描述】:
我的 SSL 由 cloudFlare 管理,但我更喜欢使用 htaccess 方法来控制站点重定向以使用 HTTPS。我有一个域www.mysite.com 和一个子域demo.mysite.com。我希望在 www.mysite.com 的完整网站和 demo.mysite.com 的完整网站上使用 HTTPS,除了我的子域上只有 1 页以防止混合内容。该页面可以包含在 iFrame 中加载的 HTTP 和 HTTPS 链接。目前该页面与整个网站一起以 HTTPS 加载,但我希望它仅以 HTTP 而不是 HTTPS 加载。该页面是demo.mysite.com/surf.php,可以通过点击demo.mysite.com/ads.php 的广告来访问。
我在我的 htaccess 文件中尝试了这个,但页面 surf.php 仍然重定向到 HTTPS。
# FORCE HTTPS
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} \/(surf.php)
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
# DISABLE HTTPS
RewriteCond %{HTTPS} on
RewriteCond %{SCRIPT_FILENAME} !\/(surf.php) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://%{HTTP_HOST}$1 [R=301,L]
我在我的 cloudFlare 设置中禁用了“始终使用 HTTPS”,并且我的 SSL 是灵活的。此外,没有设置页面规则。我更喜欢 htaccess 方法。请帮助我并告诉我该怎么做?
【问题讨论】:
-
有趣。我想知道“HTTPS Everywhere”将如何处理那个。
-
也许您正在查看缓存的 301 重定向?在再次访问您的网页的 http 版本之前,请尝试清除浏览器缓存。
标签: .htaccess ssl cloudflare cloudflare-workers