Назад | Перейти на главную страницу

Заставить Lighttpd возвращать 404 для неиспользуемых поддоменов?

У меня есть несколько доменов, настроенных на моем сервере 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" )
}