Мне нужно перенести веб-сайт на основе Apache php на lighttpd, но у меня возникают проблемы с его изменением.
Моя структура каталога:
-rootdir
--index.php¹
--login.php²
--views²
--server
---service³
---auth³
¹ В корневом каталоге правило перезаписи в Apache было следующим:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !\.(js|ico|gif|jpg|png|css|html)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
² файл login.php и папку представлений следует избегать путем перезаписи ³ каталоги server/auth и server/service должны быть переписаны по-своему:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
Пытаюсь построить правило, и почти все правильно, но /server/service нет
url.rewrite-if-not-file = (
"^/login.php\/?([^.]+)$/" => "/login.php/$1", #ok
"^/(views|assets|css|images|application)/(.*)" => "$0", #ok
"/server/service/.*\?(.*)$" => "/server/service/index.php?$1", #return rewrite response of rootdir/index.php
"/server/auth/.*\?(.*)$" => "/server/auth/index.php?$1", #ok
"/.*\.(js|ico|gif|jpg|png|css|html)$" => "$0", #ok
"/.*\?(.*)$" => "/index.php?$1",
"" => "/index.php"
)
пример использования:
www.example.com/home/id/2 ‹-- используйте /rootdir/index.php www.example.com/server/auth/check/sessionid2235232132 ‹-- используйте /server/auth/index.php www.example. com/server/server/db/clients/getall ‹-- используйте /server/service/index.php