?

Log in

No account? Create an account
 
 
06 February 2017 @ 10:32 am
Глупые вопросы про редирект  
Всем премии!

Уважаемые, я скоро умом свихнусь - не могу решить смехотворную задачку:

Есть сайт, живёт на https://www.domain.com, у него есть алиас на www2. Есть ссылки на статьи, в URL которых есть www2. Попросили сделать редирект, что бы всё было на www. Выполнил в таком виде:
# Redirect www2 to www
RewriteCond %{HTTP_HOST} ^www2\.domain\.com$ [NC]
RewriteRule ^ https://www.domain.com%{REQUEST_URI} [L,R=301,NE]

Всё работает до тех пор, пока в URL не появятся поддиректории - https://www2.domain.com/sub1/sub2/?request=value, всё это не редиректится, и остаётся на www2.
UPD: имена поддиректорий не статичны, и могут изменяться в произвольном порядке.
Я излазил по многим ссылкам, что подсовывал гугль, но правильной подсказки так и не нашёл (или не увидел).

Подсобите в решении, будьте добры!
заранее спасибо.
 
 
 
Dmitry Trancertrancerd on February 6th, 2017 07:23 pm (UTC)
ух ты. Как я от жизни отстал.
Раньше делал CNAME в dns и всё работало.
Йа - админко!iadminko on February 6th, 2017 07:24 pm (UTC)
CNAME тут уапшэ не при делах кагбэ.
Poor Sysadmpoor_sysadm on February 6th, 2017 08:16 pm (UTC)
Это же в .htaccess вписано?
Может быть из поддиректорий по каким-то причинам на него не попадает?

Может быть попробовать в конфиге сделать, через RedirectMatch?
You  never  can  tell  with beesdil on February 6th, 2017 11:13 pm (UTC)
Вот поэтому я предпочитаю всё писать в конфиге самого апача, и AllowOverride None. Так гораздо проще проверять настройки.
Йа - админко!iadminko on February 6th, 2017 11:18 pm (UTC)
Ох, там такой винигрет, спасибо нашим девам, я уже умаялся разгребать.
Спасибо за подсказки!
You  never  can  tell  with beesdil on February 6th, 2017 11:09 pm (UTC)
Ну раз в тех поддиректориях не работает, значит, у них свои настройки Rewrite'а, или просто RewriteEngine off. Смотрите настройки этих директорий в конфигах апача и в .htaccess'ах.
Копай Редисmipa on February 7th, 2017 06:47 am (UTC)
RewriteCond %{HTTP_HOST} ^www2\.domain\.com$ [nc]
RewriteRule (.*) https://www.domain.com/$1 [R=301,L]
Йа - админко!iadminko on February 7th, 2017 04:49 pm (UTC)
Увы и ах, не сработало.
Скорее всего, этот хрюканый wordpress перехватывает как-то.
sadok: pic#113871988sadok on February 7th, 2017 06:36 pm (UTC)
с таким правилом (возможно не с таким, но с такой логикой) оно до вордпресса не должно долететь. сначала апачЪ редирект сделает. вероятно, у вас какой-то дефолтный виртуал хост успевает сыграть.

в энжике такое легко ловится дебагом, апачЪ у меня редко в тупых конфигурациях - не подскажу, как отдебажить.
Lucky Goblin: skillfullugoblin on February 7th, 2017 04:31 pm (UTC)
Сделайте сайт просто на www.domain.com, без всяких алиасов. А рядом добавьте другой сайт www2, без DocumentRoot но пусть он на все обращения отвечает редиректом на www.
Йа - админко!iadminko on February 7th, 2017 04:34 pm (UTC)
Есть уже всё давно.
Отделу маректинга, видите ли, не нравится www2, хотя именно из-за них он и появился.
Lucky Goblin: skillfullugoblin on February 7th, 2017 06:33 pm (UTC)
Попробую по другому. Сделайте www2 не алиасом www, а отдельным блоком VirtualHost.
https://httpd.apache.org/docs/2.4/vhosts/examples.html

Пусть собственно страница лежит на www, а на www2 лежит только редирект на "то же самое, но на www". И пишет в отдельный лог, где можно посмотреть кто именно на неправильный URL ссылается.