Игорь Сысоев в рассылке nginx-ru пишет:
На днях интересовался, как делается перенаправление запросов в Drupal и прочие.
Так вот, апачевскую конструкцию вида
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
нужно переделывать не в
location / {
if (!$request_file) {
rewrite ^(.*) /index.php?q=$1 last;
}
}
location = /index.php {
fastcgi…
}
и даже не в
location / {
error_page 404 = /index.php?q=$request_uri;
}
location = /index.php {
fastcgi…
}
а вот в такое:
location / {
error_page 404 = drupal;
}
location = drupal {
fastcgi_param SCRIPT_FILENAME /path/to/index.php;
fastcgi_param QUERY_STRING q=$request_uri;
fastcgi…
}