htaccess файл - RewriteCond - условие, которое добавляет www. на URL, только если он еще не содержит строку в URL - PullRequest
0 голосов
/ 04 января 2019

У меня есть сайт: example.com.

У меня есть сайт для разработки: development.example.com

Меня попросили добавить «www». к URL, но я не могу добавить его на сайт разработки.

Есть ли способ получить условие, чтобы убедиться, что на сайте нет "www." & не содержит строку 'development.' если это так. Добавьте «www.» строка в URL?

Вот мой ток:

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [L,R=301]

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

Моя логика немного объяснила: Если я вначале запустил перенаправление https, я смогу убедиться, что URL-адрес обоих «www». и «развитие». перемещены в https. Затем я хочу отредактировать '! ^ Www.' условие во второй части, чтобы добавить «www.» если нет "www." & нет 'развития.'.

Но это текущее правило ЯВНО изменяет URL моего сайта разработки на https://www.development.example.com, вызывая проблему.

Будет ли ответ чем-то похожим на -

RewriteCond %{HTTP_HOST} !^www\..!^development\. [NC]

Заранее спасибо, Джейсон.

1 Ответ

0 голосов
/ 04 января 2019

То, как мне удалось связать два RewriteCond вместе, выглядит так:

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

Прочитав немного дальше, вы можете просто связать свои условия перед RewriteRule.

Спасибо, Джейсон.

...