@cdmax2002

Как преобразовать apache .htaccess для lighttpd?

Есть файл .htaccess. В Apache работает. При переносе на lighttpd - нет.
# Enable rewrite engine and route requests to framework
RewriteEngine On

# Some servers require you to specify the `RewriteBase` directive
# In such cases, it should be the path (relative to the document root)
# containing this .htaccess file
#
# RewriteBase /

RewriteCond %{REQUEST_URI} \.ini$
RewriteRule \.ini$ - [R=404]

RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L,QSA]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]


Насколько я понял .htaccess не поддерживается в lighttpd и нужно писать всё в lighttpd.conf.
server.modules = ( "mod_access", "mod_rewrite" )
Это я прописал в lighttpd.conf.
В моём понимании, первые две строчки запрещают доступ к файлам ini, а что дальше написано - совсем не понимаю.
Прошу Вас помочь преобразовать конфиг файл. И пояснить, что означают эти строки.

update:
Нашел, что можно сделать так:
$HTTP["host"] =~ "www\.example\.com$" {
    url.rewrite-once = ( "^/(.*?)(\?.+)?$"=>"/index.php/$1?$2" )
    server.error-handler-404 = "/index.php"
}

Работает, но обрабатывает все запросы к серверу. Т.е. перестают загружаться css и js из папок /css и /js. Как сделать так, что бы css и js загружались?

update2:
Переписал правило так:
$HTTP["host"] =~ "www\.example\.com$" {
    url.rewrite-if-not-file = ( "^/(.*?)(\?.+)?$"=>"/index.php/$1?$2" )
    server.error-handler-404 = "/index.php"
}


Работает как нужно. Но я совсем не уверен, что это равносильно условию описанному в начале. Если кто-то поможет, буду благодарен.
  • Вопрос задан
  • 5699 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы