Lighttpd не Apache, поэтому вы должны привыкнуть к тому, как lighttpd делает подобные вещи. К сожалению, и это отключает многих людей из Lighttpd, которых у меня нет .htaccess.
Lighttpd также имеет только один центральный файл конфигурации. Однако он имеет концепцию includes
, поэтому, если вам нужен отдельный файл конфигурации для каждого из ваших виртуальных хостов, вы можете сделать следующее:
В вашем /etc/lighttpd/lighttpd.conf
настройте каждого из своих vhosts следующим образом:
$HTTP["host"] == "example.com" {
include "example.com.conf"
}
И затем вы можете создать отдельную конфигурацию для каждого из ваших vhosts в этом случае /etc/lighttpd/example.com.conf
, например:
## set up php
fastcgi.server = ( ".php" => ((
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/tmp/php-" + PID + ".socket"
)))
## redirect non-www to www
$HTTP["host"] =~ "^example\.com$" {
url.redirect = ( "^/(.*)" => "https://www.example.com/$1" )
}
## Domain specific rewrites
url.rewrite-if-not-file = (
"^/(.*)$" => "/index.php/$1"
)
## Deny Access
$HTTP["url"] =~ "^/secrets" {
url.access-deny = ("")
}
Преимущество таких действий заключается в том, что вы можете иметь собственную конфигурацию для определенных настроек vhost. Например, отдельный конфиг для php, один для wordpress, один для nodejs и т. Д. Примерно так:
$HTTP["host"] == "wordpress.example.com" {
include "php.conf"
include "wordpress.conf"
}
$HTTP["host"] == "nodeapp.example.com" {
include "nodejs.conf"
}
В этом примере php.conf будет включать в себя все ваши настройки fastcgi, wordpress.conf, все ваши переписанные wordpress и nodejs.conf, все настройки прокси для вашего приложения узла.