У меня возникли некоторые проблемы с mod_rewrite, и я подозреваю, что делаю основную ошибку.
Моя цель состоит в том, чтобы настроить каноническую форму на моем сервере таким образом, чтобы весь доступ (по домену или IP-адресу) осуществлялся без изменений к субдомену https: // и www. например https://www.example.com
Вот мои правила переписывания:
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^99\.100\.101\.102
RewriteCond %{HTTP_HOST} ^example\.com [nc]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
# Force https
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
Кажется, что это работает, за исключением: https: // example.com ... который не переписывается с помощью www. суб-домен и отключает предупреждение сертификата.
Какую школьную ошибку я допустил? : -)
/ Уоррен
Ваш файл работает на меня, если я добавляю это вначале
RewriteEngine on
, Но я предполагаю, что Вы включили mod_rewrite
по умолчанию.
, Так как Вы используете постоянный 301 заголовок, это может быть проблема кэша браузера от более ранние версии правил..?
Сделал Вас, пытался сбросить кэш браузера? Или попробованный другой браузер, который Вы не использовали прежде?
можно также попытаться добавить [OR]
в конце первого условия:
RewriteCond %{HTTP_HOST} ^99\\.100\\.101\\.102 [OR]