Назад | Перейти на главную страницу

Правила перезаписи Anchor CMS на Lighttpd

Я установил Anchor CMS на свой сервер с Lighttpd, и я пытаюсь настроить красивый URL. У меня якорь установлен в подкаталоге "/ blog".

Файл htaccess, который работает с anchor cms в apache:

<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 и изображения. Я думал использовать url.rewrite-if-not-file покрыл бы это, но, похоже, это не работает для моей установки. http://redmine.lighttpd.net/projects/1/wiki/Docs_ModRewrite#urlrewrite-repeat-if-not-file

Следующие URL-адреса и их файлы должны быть сохранены:

Каталог тем может меняться в зависимости от темы, которая используется в данный момент. Так что вместо «по умолчанию» это может быть «пример». Я не очень хорошо разбираюсь в регулярных выражениях, поэтому мне действительно нужна помощь. Я думал, что что-то вроде этого может сработать:

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

Любая помощь в этом будет принята с благодарностью. Lighttpd использует regrex аналогично perl

Я получил это, работая со следующими правилами перезаписи:

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

Надеюсь, это поможет кому-то другому, запускающему якорную cms на lighttpd