wordpress - 仅针对 WordPress 网站重定向到某些 url 的 https

标签 wordpress apache .htaccess mod-rewrite https

我正在开发一个 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/

相关文章:

php - 如何在 wordpress 的自定义主题中添加验证码

wordpress - 自定义帖子类型 slider

php - WooCommerce:按产品属性术语过滤管理订单

css - 在 Wordpress 中使用切片横幅

php - PHP 和 Apache 的最大上传大小?

php - htaccess 301 重定向多个网址

php - Apache 服务器压缩和利用浏览缓存问题

php - 非常小的、持久的数据结构

regex - .htaccess 重写 URL 启动/重定向

.htaccess - 允许使用 htaccess 文件使用多个 IP 地址进行管理员登录