Dot-Htaccess

隱蔽 mod-rewrite 到 lighttpd 以減少 url 縮短器

  • June 26, 2011

我正在嘗試在我的 lighttpd 伺服器上使用 Shaun Inman 的 url 縮短器 lessn,他使用 .htaccess 文件進行重定向。我不太擅長 Mod_Rewrite 是第一位的,否則一些簡單的Google搜尋就足以將其轉換為 lighttpd。事實上,我不知道 Mod_Rewrite 的第 2 行和第 3 行在做什麼,所以我無法轉換。我會很感激任何人對這些的建議,這樣我就可以讓它正常工作。謝謝!

<IfModule mod_rewrite.c>
   RewriteEngine   on
   RewriteCond     %{REQUEST_FILENAME}     !-d
   RewriteCond     %{REQUEST_FILENAME}     !-f
   RewriteRule     (.*) index.php?token=$1 [QSA,L]
</IfModule>

這兩行指示 Apache 的 mod_rewrite 不將重寫規則應用於文件系統上物理存在的文件 (f) 和目錄 (d):

RewriteCond     %{REQUEST_FILENAME}     !-d
RewriteCond     %{REQUEST_FILENAME}     !-f

很長一段時間以來,lighttpd 不支持這種開箱即用的行為,您必須將 mod_magnet 與 lua 腳本一起使用,如下例所示:

http://drupal.org/node/43782

但是,現在似乎有支持:

http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModRewrite#urlrewrite-repeat-if-not-file

因此,只需在您的 lighttpd.conf 中使用該重寫結構,例如:

url.rewrite-if-not-file = (
 "^/(.*)$" => "/index.php?q=$1"
)

希望這會有所幫助,祝你好運!

引用自:https://serverfault.com/questions/284340