У меня есть две страницы на моем 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 явно не дает того, на что я надеялся.
Любая помощь высоко ценится.