http: // и http://www. до https://www - PullRequest
       52

http: // и http://www. до https://www

1 голос
/ 24 августа 2011

Возможно, кто-то может мне помочь.Мне нужно правило переписывания вроде этого: перенаправление с http:// и http://www. на https://www.mydomain.

Например, кто-то печатает mydomain.com, он перенаправляется на https://www.mydoamin, если он набирает www.mydomain.com он перенаправляется на https://www.mydomain.Поэтому, если кто-то наберет mydomain.com и www.mydomain.com, его следует перенаправить на https://www.mydomain

Также, если возможно, перенаправить на поддомен, например login.mydomain.com -> https://login.mydomain.com

Всев HTTPS.

Ответы [ 3 ]

4 голосов
/ 01 сентября 2011

Ну, я нашел небольшую опечатку, чтобы исправить в своем последнем комментарии, и хочу знать, какая часть не так, если эти настройки не работают, как вы ожидали:

RewriteCond %{HTTPS} !=on
RewriteRule .* https://www.mydomain.com%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} !^www\.mydomain\.com
RewriteRule .* https://www.mydomain.com%{REQUEST_URI} [R=301,L]

Выше состоит из двух частей:

  1. Если URL не начинался с https://,, перенаправить на https://www.mydomain.com/ независимо от имени хоста или остальной части URL
  2. Если URL-адрес хоста не www.mydomain.com, перенаправьте на https://www.mydomain.com/, в любом случае URL-адрес http: // или https://

UPDATE: Наконец-то появилась возможность проверить себя. Правила соответствия не работали, как я ожидал, по некоторым причинам. Подстановочный знак ($ 1) заменен на% {REQUEST_URI}, а шаблон ^ / (. ) $ на. .

3 голосов
/ 24 августа 2011

вот что вы можете поместить в ваш файл .htaccess

RewriteEngine On
SSLOptions +StrictRequire
SSLRequireSSL
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
2 голосов
/ 24 августа 2011

Оба ваших кода не работают.

На данный момент у меня есть этот, и он работает, но только для http (без "s")

# http to www #
RewriteCond %{HTTP_HOST}   !^www\..* [NC]
RewriteCond %{HTTP_HOST}   !^.*\..*\..* [NC]
RewriteRule ^(.*)          http://www.%{HTTP_HOST}/$1 [R=301,L] 
...