Dot-Htaccess

在 Lighttpd 上重寫 Anchor CMS 的規則

  • February 18, 2014

我在執行 Lighttpd 的伺服器上安裝了 Anchor CMS,我正在嘗試設置漂亮的 url。我在子目錄“/blog”中安裝了錨。

與 apache 中的錨 cms 一起使用的 htaccess 文件是:

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteBase /blog

   # Checks to see if the user is attempting to access a valid file,
   # such as an image or css document, if this isn't true it sends the
   # request to index.php
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
   ErrorDocument 404 /index.php
</IfModule>

這是我在 lighttpd 中的重寫規則:

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

url 現在很漂亮,但沒有載入任何靜態內容,即 css、javascript 和圖像。我認為 usingurl.rewrite-if-not-file會涵蓋這一點,但它似乎不適用於我的安裝。http://redmine.lighttpd.net/projects/1/wiki/Docs_ModRewrite#urlrewrite-repeat-if-not-file

以下網址及其文件需要保持完整:

  • /blog/themes/default/{ js | CSS | 圖像}
  • /blog/anchor/views/assets/{ js | CSS | 圖像}

主題目錄可以根據目前使用的主題而改變。因此,它可以是“範例”,而不是“預設”。我對正則表達式不是很好,所以我真的可以使用一些幫助。我在想這樣的事情可能會奏效:

url.rewrite-once += ("^/blog/themes/(.*.)/(css|js|img)/(.*)" => "$0")

對此的任何幫助將不勝感激。Lighttpd 使用類似於 perl 的正則表達式

我使用以下重寫規則得到了這個:

url.rewrite-if-not-file += ( "^/(.*)\.(css|js|jpg|png|gif)$" => "$0",
                            "^/blog/(.*)$" => "/blog/index.php/$1" )

我希望這可以幫助其他人在 lighttpd 上執行錨 cms

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