WordPress重定向到HTTPS,除了几个网址



我希望我的wordpress页面被重定向到https,除了页面/contact。

我的 .htaccess 文件中有这个,但它不起作用:

<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !contact/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

</IfModule>

谢谢

首先,在使用mod_rewrite的情况下,RewriteEngine on应该排在顶部,那么,最好在应用任何规则之前强制所有web进入https,那么问题是当你排除只有包含contact的请求被强制进入https时,https是一个, 例如,当您在站点https://yourdomain.com转到联系页面时,唯一的更改将在URI中,因此您的代码应如下所示:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !contact
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} contact
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
</IfModule>

上面的代码将防止所有具有contact单词的请求被强制进入https因此,如果您想指定更多内容,则可以根据需要使用/contac//contact

注意:清除浏览器缓存然后测试它。

如果要添加第二页,请更新,通过此(contact|secondpage)更改每个contact,依此类推

尝试将请求 URI 提供给重写条件。

RewriteCond %{REQUEST_URI} !contact/

最新更新