Сценарий htaccess для Wordpress для обслуживания выбранной страницы как https - PullRequest
0 голосов
/ 09 мая 2018

У меня есть две страницы на моем WordPress-сайте, которые нужно использовать как https; остальное ванильное http. Перенос всего сайта на https потребует большого количества редактирования базы данных, чтобы избежать смешанного контента, поэтому я хочу написать сценарий htaccess для использования RewriteRule, который внесет изменения только для этих двух страниц.

Адреса браузера для этих двух страниц похожи http://example.com/draw/membership-login/ и http://example.com/draw/membership-join/membership-registration/ Обратите внимание, что они оба содержат слово «членство», и ни одна другая страница не содержит (или я так верю), поэтому я подумал, что напишу правило для поиска любого REQUEST_URI, содержащего «членство». Я сделал это и поместил его перед собственным сценарием Wordpress в .htaccess (.htaccess находится в директории draw, домашней директории для установки Wordpress). Это выглядит так (только первые 4 строки - мои; остальные - WordPress, за исключением того, что я закомментировал их RewriteEngine On).

RewriteEngine On  
RewriteCond %{HTTPS} off  
RewriteCond %{REQUEST_URI} membership
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=302, L]  
# BEGIN WordPress
<IfModule mod_rewrite.c>
#RewriteEngine On
RewriteBase /draw/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /draw/index.php [L]
</IfModule>
# END WordPress

Результат? Все страницы работают нормально, кроме двух страниц членства, которые служат 404.

Полагаю, в некотором смысле это хорошая новость, поскольку RewriteCond должен находить страницы членства, но RewriteRule явно не дает того, на что я надеялся.

Любая помощь высоко ценится.

1 Ответ

0 голосов
/ 10 мая 2018
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} membership(.+)
RewriteRule ^membership(.+) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

(.+) будет соответствовать любому символу один или несколько раз.Перенаправление 301 означает, что страница навсегда переместилась в новое место.Переадресация 302 означает, что перемещение является только временным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...