Принудительный доступ пользователей к сайту с помощью www. и https - PullRequest
0 голосов
/ 02 февраля 2010

Я пытаюсь написать правило .htaccess, которое добавляет www. в домен и s в http, если требуется, но я не могу найти правило или набор правил, который работает для каждого случая.

Случаи ...

\ https://www.site.com - должно просто работать

\ http://www.site.com - следует перейти к \ https://www.site.com

\ http://site.com - следует перейти к \ https://www.site.com

\ https://site.com - - следует перейти к \ https://www.site.com

Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 02 февраля 2010

Попробуйте это правило:

RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)
RewriteRule ^ https://www.%2%{REQUEST_URI} [L,R=301]

Это должно охватывать оба случая, в которых либо запрос не был HTTPS (первое условие), либо хост не запускается с www. (второе условие). В этом случае третье условие будет захватывать хост без начального www. (если имеется), который затем используется при замене правила.

...