Lighttpd: config / rules для подкаталога в том же каталоге (например, Apache's .htacces)? - PullRequest
1 голос
/ 12 марта 2019

Совершенно новый для lighttpd, прибыл из лагеря Apache. С помощью Apache вы можете поместить файл .htaccess в любой каталог, предоставляя некоторые дополнительные правила для проекта. Это невозможно с lighttpd?

Пробовал:

  • подкаталог / lighttpd.conf.d
  • подкаталог / lighttpd.conf
  • подкаталог / lighttpd.d

И subdir/subdir.<conf.d|conf|d> и т. Д., Похоже, ничего не работает. Это не возможно с lighttpd? Мне нужно отредактировать /etc/lighttpd/lighttpd.conf для каждого проекта в подкаталоге?

1 Ответ

0 голосов
/ 24 апреля 2019

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, все настройки прокси для вашего приложения узла.

...