Я установил 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