Lighttpd:同一目录中的子目录的config / rules(如Apache的.htaccess)?

问题描述 投票:1回答:1

来自Apache阵营的相当新的lighttpd。使用Apache,您可以将.htaccess文件放在任何目录中,为项目提供一些额外的规则。使用lighttpd是不可能的?

尝试:

  • 子目录/ lighttpd.conf.d
  • 子目录/ lighttpd.conf
  • 子目录/ lighttpd.d

subdir/subdir.<conf.d|conf|d>等,似乎没有任何作用。使用lighttpd是不可能的?我需要在子目录中为每个项目编辑/etc/lighttpd/lighttpd.conf吗?

configuration directory rules lighttpd
1个回答
0
投票

Lighttpd不是Apache,所以你必须习惯lighttpd这样做的方式。不幸的是,这关闭了很多来自Lighttpd的人,它没有相当于.htaccess。

Lighttpd也只有一个中央配置文件。但是它确实有includes的概念,所以如果你想为每个虚拟主机分别配置一个配置文件,你可以执行以下操作:

在你的/etc/lighttpd/lighttpd.conf中设置你的每个vhosts:

$HTTP["host"] == "example.com" {
    include "example.com.conf"
}

然后你可以为你的每个vhost创建一个单独的配置,在这种情况下/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所有代理设置到你的节点应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.