Lighttpd переписывают субдомены к подпапкам

У меня есть сервер (сам на субдомене) с подстановочным знаком DNS, указывающий на него. Сервер выполняет Lighttpd и PHP.

Мне нужны запросы к http://any-subdomain.server.example.com переписать к http://server.example.com/site/any-subdomain и будьте обслужены оттуда. Это должно быть абсолютно очевидно для пользователя.

Вот моя соответствующая конфигурация:

$HTTP["host"] =~ "^(.*)\.server\.example\.com$" {
    url.rewrite-once = ( "^(.*)" => "/site/%1/$1" )
}

Это, кажется, работает за исключением подпапок, которые перенаправляются к subdomain.server.example.com/site/subdomain/subfolder и затем 404's.

2
задан 14 June 2014 в 02:11
2 ответа

Я нашел лучший способ, чем использование переписей. Вместо этого я использовал mod_simple_vhost:

simple-vhost.server-root = "/var/www/site/"
simple-vhost.default-host = "myquick.club"
simple-vhost.document-root = "www"

Это намного проще и легче, чем использовать mod_rewrite в данном случае. Однако это была рутинная работа, Надеюсь, это поможет другим в будущем.

0
ответ дан 3 December 2019 в 15:04

url.rewrite-once меняет URL путь (и querystring); ваше правило перезаписи выглядит так, как будто вы пытаетесь переписать в папку на диске.

Вы не можете "переписать" хост, но вы можете работать с двумя именами хостов с одним и тем же физическим отображением файлов (и бэкэндами fastcgi и ...); например, вы можете скопировать настройку server.document-root из другого vhost, или просто сделать так, чтобы другие условные имена vhost совпадали с обоими именами хостов.

Если у вас есть "catch-all" блоков vhost по умолчанию, имейте в виду, что для каждой опции конфига последняя активная установка блока перезаписывает все остальные (используйте опцию -p, чтобы увидеть внутренний порядок после оценки += и т.д.), так что начните с vhost(ов) по умолчанию.

Только для записи: "релевантный" конфиг включает в себя, по крайней мере, части для обоих vhosts, а не только вторую :)

.
0
ответ дан 3 December 2019 в 15:04

Теги

Похожие вопросы