У меня есть несколько доменов, настроенных на моем сервере Ubuntu, которые используют Lighttpd. У меня есть домены с подстановочными знаками, и я хочу, чтобы неиспользуемые поддомены возвращали 404 вместо 200 и отображали обычный домен. Мое внимание привлекла эта проблема, потому что некоторые менее опытные поисковые системы (Bing, Baidu, mail.ru) индексируют мой сайт со странными поддоменами.
Я нашел свой вопрос, заданный для Apache здесь: Подстановочный DNS, VirtualHosts на apache2, 404 для неиспользуемых поддоменов
Однако для Lighttpd я ничего не нашел.
я хочу www.example.com/*
к 301
перенаправить на example.com/*
(уже настроен)
я хочу allUnsetSubdomains.example.com/*
возвращаться 404
чтобы поисковые системы и люди понимали, что этого не существует.
Вот соответствующие данные из моего vhost.conf
файл:
$HTTP["host"] =~ "^www\.(.*)$" {
url.redirect = ( "^/(.*)" => "http://%1/$1" )
}
# lots of other domains #
$HTTP["host"] =~ "example.com$" {
server.document-root = "/var/www/example.com"
server.errorlog = "/var/log/lighttpd/example.com-error.log"
accesslog.filename = "/var/log/lighttpd/example.com-access.log"
server.error-handler-404 = "/index.php"
}
# lots more domains #
В идеале я бы хотел иметь универсальное правило, согласно которому все неиспользуемые поддомены для всех доменов на сервере возвращаются. 404
, очень похоже на перенаправление www. Я, честно говоря, не очень хорошо понимаю файлы конфигурации Lighttpd или регулярные выражения.
Вы можете использовать небольшую хитрость, как показано на devsite.pl.
} else $HTTP["host"] =~ "^something.domain.com$" {
# ....
} else $HTTP["host"] =~ ".*" {
url.redirect-code=404
url.redirect = ( ".*" => "http://domain.com" )
}