2016-04-12 153 views
1

我有一臺Linux服務器,我安裝了Lighttpd(1.4.28)。現在,我有這樣的多個文件夾(13)設置身份驗證:Lighttpd身份驗證

auth.debug = 2 
auth.backend = "plain" 
auth.backend.plain.userfile = "/home/.lighttpdpasswd" 
auth.require = (

"/test1" => 
      (
      "method" => "basic", 
      "realm" => "Password protected area", 
      "require" => "user=test1" 
      ), 
. 
. 
. 

"/test13" => 
      (
      "method" => "basic", 
      "realm" => "Password protected area", 
      "require" => "user=test13" 
      ), 
) 

而且lighttpdpasswd是這樣的:

test1:test1 
test2:test2 
test3:test3 
test4:test4 
test5:test5 
test6:test6 
test7:test7 
test8:test8 
test9:test9 
test10:test10 
test11:test11 
test12:test12 
test13:test13 

現在,從1到9的文件夾,認證的偉大工程,爲10 ,11,.. 13訪問被拒絕了正確的憑據!

這是lighttpd的錯誤還是應該添加一些參數?

回答

1

lighttpd mod_auth在執行auth.require列表時執行簡單的前綴匹配。它不尋找完整的路徑匹配,只是前綴匹配。

解決方法是將您的較長路徑放在auth.require列表中的較短路徑之前,以便「test1」之前的「test10」和「test11」