MigratingFromApache » History » Revision 5
Revision 4 (jan, 2005-07-05 22:16) → Revision 5/51 (procreate, 2005-07-05 22:17)
== Basic Options == {{{ Options +FollowSymLinks }}} becomes {{{ server.follow-symlinks = "enable" }}} == mod_rewrite == [http://www.lighttpd.net/documentation/rewrite.html mod_rewrite] is more trickier as the idea how it is handled is completly different. First of all we always match on the full relative request-uri that is submitted by the user. That means that we are always using the [QSA] flag from mod_rewrite in Apache. This is example is based on a problem from http://dir.onlinesearch.ws/ sent in by dbird@freenode. {{{ RewriteEngine On RewriteBase /installdir/ RewriteCond %{REQUEST_FILENAME} -d # Fix trailing slash problem RewriteRule ^(.+[^/])$ $1/ [R,L] # Do not try to treat the following resources as parameters to index.php RewriteRule ^index.php.*$ - [L] RewriteRule ^dmoz.css$ - [L] RewriteRule ^admin[/]?.*$ - [L] RewriteRule ^img[/]?.*$ - [L] RewriteRule ^[/]{0,}(.*)$ index.php?area=browse&cat=$1 [QSA,L] }}} These rewrites want to rewrite everything that is not the index.php, dmoz.css, admin-interface or something from the image-directory to a parameter of the index.php page. The base directory for this match is ''/instadir/''. ''/installdir/'' {{{ ## for all URLs in /instadir/ that are not index.php, dmoz.css, admin or img, do ... $HTTP["url"] =~ "^/installdir/(?!index.php|dmoz.css|admin|img)" { url.rewrite = ( "^/installdir/(.*)" => "/installdir/index.php?area=browse&cat=$1") } }}} The conditional is using some regex-magic called [http://perlpod.com/5.9.1/pod/perlre.html#Extended%20Patterns zero-width negative look-ahead assertion] and is something from the advanced chapters of your [http://www.oreilly.com/catalog/regex/ regex book].