htaccess -> нужно перенаправить все www не на www и одну страницу только на ssl - PullRequest
2 голосов
/ 13 августа 2011

Я искал "везде", но просто не могу понять это.

Мне нужен htaccess, чтобы сделать для меня 2 вещи:

  1. Принудить всеwww запросы к не-www запросам
  2. Также форсируйте 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]

Итак, результаты таковы:

  1. любые URL-адреса www и не-www и http перенаправляются на не-www и http -> OK
  2. любые URL-адреса www и non-www и https (кроме защищенной страницы) перенаправляются на не-www, а http -> OK
  3. url защищенной страницы перенаправляются в корень сайта, и яне могу понять, почему -> НЕ ОК

Может кто-нибудь, пожалуйста, помогите?Спасибо

1 Ответ

2 голосов
/ 13 августа 2011
RewriteEngine On
# Redirect from www to non-www
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} ^/secure-page[/]?$
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]


RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/secure-page[/]?$
RewriteRule ^(.*)$  http://example.com/$1 [L,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]

Я обновил свой ответ!

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