2012-06-12 68 views
0

最初我想添加尾/在我的網址(lighttpd的)lighttpd的條件重寫

這是可以做到與

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

現在我需要排除一些擴展比如後綴名爲.txt,PNG等。我想爲除了這些擴展名之外的所有內容添加尾部斜槓,我似乎沒有得到那個工作。

在Apache中我可以使用條件重寫,你會怎麼做,在lighttpd的。

任何方向將不勝感激。

謝謝

回答

1

只是爲了一起這樣的工作(測試)

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

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

@大衛這將創造永無止境的循環.....

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

這將創造有史以來持久環

@Matthew這不會相當的工作,你正在推動一切%1

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

非常感謝tike..that工作。謝謝大衛和馬修。 – Amit

0

你可以有多個重定向規則:

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

在這種情況下,它會與文字.png.txt匹配的一切,然後嘗試你的原始規則。

+0

其實我正在尋找條件重寫,以便它只會重寫,如果它不是PNG或TXT .. – Amit

+0

這實際上是一個條件重定向。匹配的第一條規則是成功規則;在這種情況下,png/txt行會自行重寫,併發生重定向。如果沒有發生,它會嘗試第二次重定向。請注意,這是完全重定向,而不是軟重寫。 –

+0

不會「^(。*)\。(png | txt)$」=>「$ 1. $ 2」會導致重定向循環或lighttpd通知並忽略? –

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