.Htaccess правила для перенаправления соответствующих HTTP-ссылок на HTTP и HTTPS на HTTPS? - PullRequest
0 голосов
/ 09 октября 2011

Во-первых, вот правило .htaccess, которое я сейчас использую:

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://example.com/$1 [R=301,L]

Это замечательно и перенаправляет каждую ссылку моего старого домена на соответствующую ссылку в новом домене.То есть http://olddomain.com/1.html перенаправляется на http://example.com/1.html и т. Д.

Но оно не перенаправляет https://olddomain.com/1.html на https://example.com/1.html

И, как вы знаете, я пытался нижеэто правила, которые я тоже проверял.К сожалению, они создают какой-то цикл, и перенаправление не работает.

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) example.com/$1 [R=301,L]

и

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTPS} =on
RewriteRule (.*) example.com/$1 [R=301,L]

Итак, кто-то может дать мне правила перенаправления страниц http на httpа https страницы в https?Благодаря.

Ответы [ 2 ]

0 голосов
/ 17 октября 2011
#if https on
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
#else
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
0 голосов
/ 09 октября 2011

Ваша HTTPS-перезапись неверна. Конд это регулярное выражение, а не тест качества. Должно быть

RewriteCond %{HTTPS} !^on

В %{HTTPS} var будет содержаться только on или off. Никогда =on, поэтому сопоставление не выполняется и вызывает перенаправление, даже если https действительно включен.


обновление

Для безусловного перенаправления HTTP-> HTTPS вам необходимо перенаправить на https URL. Ваша версия просто определяет, является ли HTTPS * OFF , затем перенаправляет на тот же URL, вызывая цикл. Что вам нужно:

RewriteCond %{HTTPS} !^on
RewriteRule (.*) https://example.com/$1 [R=301,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...