lighttpd条件重写

时间:2012-06-12 18:16:58

标签: linux rewrite lighttpd

最初我想在我的网址(lighttpd)中添加尾随/

可以使用

    url.redirect = ( "^(.*[^/])$" => "$1/" ) 

现在我需要排除一些扩展名,例如.txt,png等。我想为除了那些扩展名之外的所有内容添加尾随斜杠,我似乎无法正常工作。

在apache中我可以使用条件重写,你会在lighttpd中做到这一点。

任何指示都将受到高度赞赏。

谢谢

3 个答案:

答案 0 :(得分:1)

只是将它组合在一起,这将起作用(测试)

       $HTTP["url"] !~ "^(.*)(\..{3}|/)$" {
          url.redirect = (

           "^(.*[^/])$" => "$1/"
          )
        }

@david这会创建永无止境的循环.....

 "^(.*)\.(png|txt)$" => "$1.$2",
    "^(.*[^/])$" => "$1/"

这将创造持久的循环

@Matthew这不会很有效,因为你正在把所有东西都推到%1

$HTTP["url"] !~ "^(.*)(\..{3}|/)$" {
  url.redirect = (
    ".*" => "%1/" 
  )
}

答案 1 :(得分:0)

您可以拥有多个重定向规则:

url.redirect = (
    "^(.*)\.(png|txt)$" => "$1.$2",
    "^(.*[^/])$" => "$1/"
)

在这种情况下,它会将所有内容与文字.png.txt匹配,然后尝试原始规则。

答案 2 :(得分:0)

$HTTP["url"] !~ "^(.*)(\..{3}|/)$" {
  url.redirect = (
    ".*" => "%1/" 
  )
}