Проблема с использованием mod_rewrite для поддержки канонического URL
У меня возникли некоторые проблемы с 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. суб-домен и отключает предупреждение сертификата.
Какую ошибку школьника я сделал?:-)
/ Warren
1 ответ
Ваш файл работает для меня, если я добавлю это в начале
RewriteEngine on
Но я думаю, что вы включили mod_rewrite
по умолчанию.
Так как вы используете постоянный заголовок 301, это может быть проблема с кэшем браузера из более ранних версий правил..?
Вы пытались сбросить кеш браузера? Или попробовал другой браузер, который вы раньше не использовали?
Вы также можете попробовать добавить [OR]
в конце первого условия:
RewriteCond %{HTTP_HOST} ^99\\.100\\.101\\.102 [OR]