2009-12-11 2 views
0

Я хочу перенести некоторые сайты, запущенные на apache, в Lighttpd.Apache RewriteCond to Lighttpd

Может кто-нибудь помочь мне преобразовать это правило Rewrite в эквивалентное правило для 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

правила Апач вы перечисляете use RewriteCond to take any request, который не идет на direcotyr (! -d) и который также не идет в файл (! -f) и перенаправляет его передать URL-данные в index.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 has url.rewrite-if-not-file который частично реализует это, но он будет переписывать URL, если это каталог. Поэтому вам придется добавлять правила, чтобы специально НЕ переписывать URL-адреса, которые попадают в известные действительные каталоги.

Смежные вопросы