url rewrite, nginx throw 404 errors, nothing in error logs
11,704
First, move the key rewrite out of the location
block into the enclosing server
block. That will simplify your logic.
Next, enable rewrite debug logging to confirm if the 404 you are getting is from the original URL, or the rewritten URL.
Finally, if the root cause is still not found enable general debug logging for Nginx:
error_log /path/to/log debug;
Related videos on Youtube
Author by
civilians
Updated on September 18, 2022Comments
-
civilians over 1 year
below rewrite works fine:
rewrite ^/city/restaurants$ /city/listings/restaurants permanent;
but this doesnt work
rewrite ^/city/restaurants$ /city/listings/restaurants last; rewrite ^/city/restaurants$ /city/listings/restaurants break;
what am i doing wrong?
below entire nginx server block
server { listen 80 default backlog=1024; server_name mydomain.com; client_max_body_size 20M; charset utf-8; keepalive_timeout 50; access_log /var/log/access_log main; error_log /var/log/error_log info; root /var/www/; index index.php index.phtml index.html; autoindex on; location ~ \..*/*\.php$ { return 403; } location ~^/sites/.*/private/{ return 403; } location ~^/sites/.*/files/* { try_files $uri @rewrite; } location ~ (^|/)\. { return 403; } location / { rewrite ^/city/restaurants$ /city/listings/restaurants last; location ~* \.php$ { include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_pass 127.0.0.1:9000; #try_files $uri @rewrite; } try_files $uri @rewrite; } location @rewrite { rewrite ^ /index.php; } location ~* \.(?:ico|css|js|gif|jpg|jpeg|png)$ { try_files $uri $uri/; expires 30d; } }