Есть файл .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"
}
Работает как нужно. Но я совсем не уверен, что это равносильно условию описанному в начале. Если кто-то поможет, буду благодарен.