【发布时间】:2018-05-19 13:35:56
【问题描述】:
我正在尝试让我管理的网站通过 HTTP 仅重定向一个页面,而网站的其余部分将通过 HTTPS 发送。
服务器是 Ubuntu Server 16.04.3 设置,安装了 WordPress 4.9。证书来自 Let's Encrypt。
根据我正在阅读的another post,给出的解决方案之一是在站点的 .htaccess 文件中添加类似于以下代码的内容:
# redirects non-www page requests to www version
RewriteCond %{HTTP_HOST} ^mywebsite\.com$ [NC]
RewriteRule (.*) http://www.mywebsite.com/$1 [R=301,L,NE]
# adds a trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
# 3 pages to be on https
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/(order-form|employment-
application|about/contact-us)/ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301,NE]
# All other pages have to be on http
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/(order-form|employment-
application|about/contact-us)/ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301,NE]
但是,在应用此解决方案并重新启动 apache 服务器后,整个站点进入了不断重定向和超时的状态。如前所述,我只需要一页和一页就可以在 HTTP 上,站点的其余部分可以安全地在 HTTPS 上。任何解决方案将不胜感激。
【问题讨论】:
-
我很想知道您无法通过 HTTPS 提供所有内容的原因。
-
仅供参考,Google 会恨你这样做。
-
@Sammitch 因为想要这个的客户端将有问题的页面链接到另一个页面,该页面会提取一些数据,并且源页面只是 HTTP 并且不想使用 HTTPS 显示。此外,网页设计师有时很奇怪。 :P
标签: php wordpress apache .htaccess redirect