0

同じURLで認証と書き換えの両方を取得できないようです。1つを無効にすると、もう1つは機能します。これはlighttpdで可能ですか?

$HTTP["host"] =~ "www\.example\.com$" {
   auth.require = (
     "/prettyurl" =>
     (
      "method" => "basic",
      "realm" => "Password reqired",
      "require" => "valid-user"
     )
   )
   url.rewrite = (
         "/prettyurl" => "/index.php?foo=bar&goo=car"
   )
}
4

2 に答える 2

2

auth.require私は通常、内にカプセル化し$HTTP["url"]ます。そんな感じ:

$HTTP["host"] =~ "www\.example\.com$" {
  url.rewrite = (
    "/prettyurl" => "/index.php?foo=bar&goo=car"
  )

  $HTTP["url"] == "/index.php" {
    $HTTP["querystring"] == "foo=bar&goo=car" {
      auth.require = ( "" =>
        (
          "method"  => "basic",
          "realm"   => "Password reqired",
          "require" => "valid-user"
        )
      )
    }
  }
}
于 2013-01-10T08:22:53.083 に答える
1

これに対する解決策を見つけました。URLのクエリ文字列部分ではどちらも一致しないようですauth.require$HTTP["url"]

最初にシンボリックリンクを作成します

ln -s index.php index_auth.php

次に、lighttpd conf で:

$HTTP["host"] =~ "www\.example\.com" {
    url.rewrite = (
       "/prettyurl-auth" => "/index_auth.php?foo=bar",
       "/prettyurl-noauth" => "/index.php?goo=car"
    )
    auth.require = ( "/index_auth.php" =>
      (
        "method"  => "basic",
        "realm"   => "Password reqired",
        "require" => "valid-user"
      )
    )
}

良い方法があれば教えてください!

于 2013-01-10T19:53:34.290 に答える