У меня есть rewrite для старых неиспользуемых поддоменов, и 90% URL существуют как на корневом домне, так и на субдомене, но некоторые URL-адреса уникальны для поддоменов.
Как мне сделать условие?
если поддомен соответсвует шаблону то направляем на основной домен
если это перенаправление вернуло 404 вернуть пользовательскую страницу
Это так, набросок, location в условии разместить так нельзя, я знаю.
if ($host ~* (sub1|sub2|sub3)\.mysite\.loc) {
rewrite ^(.+)$ http://mysite.loc$1 permanent;
location / {
error_page 404 =301 http://mysite.loc/lost-sub;
}
}
P.S. 404 отдельно обрабатывает приложение на своей стороне.
Решение
Элегантного решения не нашел, сделал так:
if ($host ~* (sub1|sub2|sub3)\.mysite\.loc) {
rewrite ^(.+)$ http://mysite.loc$1 permanent;
}
location / {
if ($request_uri ~ ^.*(pepyaki|pyani|zhirchik).*) {
return 301 http://mysite.loc/custom;
}
}
где ^.*(pepyaki|pyani|zhirchik).* - это проблемные вхождения взятые из лога