Назад | Перейти на главную страницу

Настройка перенаправления SSL ТОЛЬКО для главной страницы на Drupal?

Я хочу, чтобы пользователи, посещающие мой сайт, были перенаправлены на версию SSL, когда они обращаются к нему следующим образом

www.mysite.com

Но когда они обращаются к другим URL-адресам, например ...

www.mysite.com/some
www.mysite.com/other
www.mysite.com/links

Это идет к нормальной версии.

Это то, что у меня пока НЕ ​​работает:

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

Это касается ВСЕХ страниц.

Ваш текущий набор правил проверяет только HTTP_HOST. Чтобы идентифицировать запросы для вашей главной страницы, вам необходимо добавить проверки для REQUEST_URI:

RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]
RewriteCond %{REQUEST_URI} ^$ [NC, OR]
RewriteCond %{REQUEST_URI} ^/node$ [NC, OR]
RewriteCond %{REQUEST_URI} ^/yourFrontpageAlias$ [NC]
RewriteRule ^(.*)$ https://www.mysite.com/$1 [L,R=301]

Это также проверит пустой URI запроса, стандартный «узел» главной страницы Drupal и псевдоним, который вы ему могли дать. Это просто непроверенный пример. Если вы изменили главную страницу по умолчанию, вам нужно заменить ее на «узел». Также обязательно проверьте ситуации с косой чертой - в зависимости от вашей настройки вам также необходимо разрешить сопоставление.

Вам, вероятно, также следует добавить проверку HTTPS Переменная сервера и пропустите правило, если запрос уже направлен на https. Он будет содержать соответственно «включено» или «выключено».

Если вы хотите заставить другие страницы явно указывать не ssl, вам необходимо добавить правило перенаправления на non ssl для всех других случаев.

В дополнение к стандартной странице документации mod_rewrite, указанной выше, вы можете проверить примеры / объяснения Руководство по перезаписи URL.


Также обратите внимание, что в зависимости от вашей настройки вам может не понадобиться / вы захотите проверять HTTP_HOST вообще, например у вас могут быть разные хосты, указывающие на ваш экземпляр (сейчас или в будущем - распространенным примером будет «www.mysite.com», который ваша текущая настройка проигнорирует).

Посмотрите модуль Drupal securepages: http://drupal.org/project/securepages

Ура