#php #.htaccess #mod-rewrite #ssl
#php #.htaccess #мод-переписать #ssl
Вопрос:
Это продолжение вопроса, который я задавал в прошлом году о настройке перезаписи мода:http://bit.ly/h8PVd9
У меня на моем сервере есть следующий мод-перезаписать, который заставляет весь трафик использовать полный URL (ради этого вопроса я буду использовать www.mysite.com ). Он работает нормально, и проблем нет:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.mysite.com$ [NC]
RewriteCond %{HTTP_HOST} !^dev.mysite.com$ [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [L,R=301]
Итак, все хорошо, однако мне нужно добавить SSL на сервер, покрывающий доменwww.mysite.com . Какое (если есть) изменение / исключение мне нужно добавить к моему ранее существующему коду перезаписи, чтобы гарантировать любые вызовы https: //www.mysite.com не будет перенаправлен на http://www.mysite.com? Нужно ли мне вообще что-либо пересматривать?
Ответ №1:
Я не эксперт по переписыванию, но я думаю, что ниже будет работать.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www.mysite.com$ [NC]
RewriteCond %{HTTP_HOST} !^dev.mysite.com$ [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [L,R=301]
Комментарии:
1. Я не хочу никого никуда перенаправлять, на самом деле наоборот! Извините, если это было непонятно. Я хочу убедиться, что безопасные вызовы на https-страницы не перенаправляются на небезопасные http-страницы, учитывая синтаксис перезаписи выше.
2. Хорошо, я удалил свой второй пример. Таким образом, показанный будет перенаправлять только в том случае, если это http. Если это https, то он не проходит через условия. httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritecond
Ответ №2:
После тестирования и консультаций с моим веб-хостингом ответ на этот вопрос следующий:
RewriteCond %{HTTPS_HOST} ^mysite.com [NC]
RewriteRule ^(.*)$ https://mysite.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^mysite.com [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,L]
Первое правило адресует все https-запросы к серверу и разрешает их выполнение без перенаправления по моим исходным правилам. Второе — это переписывание моих оригинальных правил, и оно касается принудительного использования www.mysite.com независимо от того, что вводит пользователь.
@Paul — вы были довольно близки к этому, но с моими существующими перезаписями это решение решает обе проблемы.