Hi!Im trying to move from Apache to nginx (v1.1.6), but you know, rewrite newbie here... In my site when a user types http://site.com he's redirected to http://site.com/en/, and all the other URLs are internally handled by an index.php. This is my actual Apache htaccess:
RewriteEngine On
RewriteCond %{HTTP:Accept-Language} ^en [NC] RewriteRule ^$ /en/ [L,R=301]
RewriteCond %{HTTP:Accept-Language} ^es [NC] RewriteRule ^$ /es/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) index.php?ctr=$1 [QSA,L]
And this my translation to nginx:
location / { if (-f $request_filename) { expires 30d; break; }
if ($http_accept_language ~* "^es") { rewrite ^/$ /es/ permanent; break; }
if ($http_accept_language ~* "^en") { rewrite ^/$ /en/ permanent; break; }
if (!-e $request_filename) { rewrite (.*) /index.php?ctr=$1 last; } } location ~ \.php$ { fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; ...
With this, when I type http://site.com I'm being redirected to http://site.com/en/, great, but I get a 404 error, and in the error.log I have this line:
"/bla/bla/html/en/index.php" is not found
So, why is not nginx looking for the URI /index.php?ctr=/en/? _______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx