Apache RewriteCond для Lighttpd

Я хочу перенести некоторые сайты, работающие на Apache, на Lighttpd.

Может кто-нибудь помочь мне преобразовать это правило перезаписи в эквивалентное правило для Lighttpd:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

Я читаю объяснение переписывания Lighttpd ( http://redmine.lighttpd.net/wiki/1/Docs:ModRewrite), но я не понимаю, как преобразовать это конкретное правило.

большое спасибо

1 ответ

Правила Apache, которые вы перечисляете, используют RewriteCond для принятия любого запроса, который не идет к директору (!-D) и который также не идет в файл (!-F) и перенаправляет его для передачи данных URL в индекс. php в качестве параметра "url". Он гарантирует сохранение любых других аргументов CGI (QSA) и не дает никаких дополнительных правил, если это правило соответствует (L).

Так http://yourserver.org/something-silly будет идти к http://yourserver.org/index.ph?url=something-silly а также http://yourserver.org/something-silly?q=search+terms будет идти к http://yourserver.org/index.ph?url=something-silly&q=search-terms

Lighttpd имеет url.rewrite-if-not-file, который частично реализует это, но он перезапишет URL, если это каталог. Поэтому вам нужно будет добавить правила, чтобы НЕ переписывать URL-адреса, которые идут в известные действительные каталоги.

Другие вопросы по тегам