Я искал "везде", но просто не могу понять это.
Мне нужен htaccess, чтобы сделать для меня 2 вещи:
- Принудить всеwww запросы к не-www запросам
- Также форсируйте http (не-ssl) на всех страницах, кроме одной, в этом случае мне нужен ssl
Кроме того, это WordPress-сайт с использованием постоянных ссылок, так что у меня есть тот кусок кода htaccess, который WordPress также помещает туда.Но как-то все работает нормально, за исключением того, что когда я перехожу на страницу, которую нужно принудительно перевести в ssl, он просто перенаправляет в корень сайта.
Вот так выглядит мой код:
RewriteEngine On RewriteBase /
# Redirect from www to non-www
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301]
# Turn SSL on for secure-page
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^secure-page[/]?$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
# Turn SSL off everything but secure-page
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^secure-page[/]?$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Итак, результаты таковы:
- любые URL-адреса www и не-www и http перенаправляются на не-www и http -> OK
- любые URL-адреса www и non-www и https (кроме защищенной страницы) перенаправляются на не-www, а http -> OK
- url защищенной страницы перенаправляются в корень сайта, и яне могу понять, почему -> НЕ ОК
Может кто-нибудь, пожалуйста, помогите?Спасибо