我正在开发一个 WordPress 网站。并且刚刚安装了 SSL。它已正确安装,但我只想将访问者重定向到某些页面的 https url。我还想强制浏览器对其他页面使用http。
我知道这可以通过 .htaccess 来完成,并且也尝试了一些方法。但无法按照我的需要得到这个。我是处理 .haccess 重写规则的新手,找不到可以指导我的文档。
例如,我需要强制浏览器对这两个网址使用 https:
http://www.example.com/sells/payment/
http://www.example.com/customer/login/
对于所有其他 url,请强制使用普通 http。我需要编写什么样的规则?
更新1
我还有一个将非 www 网址重定向到 www 网址的规则,这可能与这些规则冲突。以下是我将所有非 www 网址重定向到 www 网址的方法。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
我面临的问题是,应用 https 规则后,它被重定向到 https://www.www.example.com/sells/payment/这是一个错误的网址。
有解决这个问题的想法吗?
最佳答案
通过 httpd.conf
启用 mod_rewrite 和 .htaccess,然后将此代码放入 DOCUMENT_ROOT
目录下的 .htaccess
中:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule ^(sells/payment|customer/login)/ - [E=MY_URL:1]
RewriteCond %{HTTPS} off
RewriteCond %{ENV:MY_URL} 1
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
RewriteCond %{HTTPS} on
RewriteCond %{ENV:MY_URL} !=1
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
更新:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule ^(sells/payment|customer/login)/ - [E=MY_URL:1]
RewriteCond %{HTTPS} off
RewriteCond %{ENV:MY_URL} 1
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
RewriteCond %{HTTPS} on
RewriteCond %{ENV:MY_URL} !=1
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
关于wordpress - 仅针对 WordPress 网站重定向到某些 url 的 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12958906/