.htaccess принудительно ssl, когда не www - PullRequest
0 голосов
/ 04 июня 2010

У меня есть сайт, который использует ssl при доступе к поддомену, который, по сути, содержит собственное приложение, в то время как сайт переднего плана присутствует на www, который я не хочу использовать ssl. Так что это позволит:

http://www.domain.com

но если кто-то наберет:

http://secure.domain.com

они вынуждены:

https://secure.domain.com

, который при использовании этого субдомена не разрешает трафик не-ssl.

В настоящее время у меня есть это в моем файле .htaccess:

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

RewriteCond "%{HTTP_HOST}" !^www.* [NC]
RewriteCond "%{HTTP_HOST}" ^([^\.]+).*$
RewriteRule ^(.*)$ https://secure.domain.com/a/login/%1 [R=301,L]

Это работает нормально, но если я затем отредактирую URI для удаления s из https, он все равно загружает страницу, но без ssl.

Если я добавлю:

SSLOptions +StrictRequire
SSLRequireSSL

в начало файла .htaccess, тогда он всегда форсирует трафик к ssl, но это для всех поддоменов, включая www.

Есть ли способ перехватить только трафик без www и заставить его использовать ssl?

EDIT:

уточнить:

Например, если вы находитесь по адресу:

https://secure.domain.com/a/login/test 

и изменить URI на

http://secure.domain.com/a/login/test 

тогда он все еще загружает страницу, но не использует ssl. Но если я использую

SSLRequireSSL 

тогда это вызывает требование для всего сайта, и я не хочу использовать ssl на

http://www.domain.com

1 Ответ

2 голосов
/ 05 июня 2010

решаемые

После небольшой настройки я решил эту проблему. Что я сделал, так это отредактировал файл .htaccess, который находился в подкаталоге, где находится приложение: https://secure.domain.com/a/login/test, и установил его, чтобы определить, используется ли ssl или нет (я должен добавить остальную часть файла .htaccess для преимущество CodeIgniter):

RewriteEngine on

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

RewriteCond %{HTTPS} on
RewriteCond $1 !^(index\.php|images|includes|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...