NGINX rewrite rule to get a clean url

What will be the nginx rewrite rule to redirect my permalink wordpress structure from /%category%/%postname%/ to /%postname%/ ?

+6
source share
2 answers

I found this article useful on this issue: clear urls in nginx

Scroll down to the "End Touch - SEF URL" section to find out how easy it is.

Greetings.

+5
source

In short, you should let NGINX know that if this file does not exist, so as not to throw a 404 error, but rather call index.php . Wordpress is smart enough to parse URLs as parameters and execute the correct page.

Add this snippet to the server configuration block:

 location / { try_files $uri $uri/ /index.php?$args; } 

Here is a complete example from nginx.org :

 # Upstream to abstract backend connection(s) for php upstream php { server unix:/tmp/php-cgi.socket; server 127.0.0.1:9000; } server { ## Your website name goes here. server_name domain.tld; ## Your only path reference. root /var/www/wordpress; ## This should be in your http block and if it is, it not needed here. index index.php; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location / { # This is cool because no php is touched for static content. # include the "?$args" part so non-default permalinks doesn't break when using query string try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini include fastcgi.conf; fastcgi_intercept_errors on; fastcgi_pass php; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; } } 
+2
source

Source: https://habr.com/ru/post/906627/


All Articles