Kako podesiti NGINX Rewrite pravila (Pretty URLs)


Kako podesiti NGINX Rewrite pravila (Pretty URLs)

Uvod

Kratko uputstvo kako podesiti Nginx Rewrite pravila za „pretty“ permalinkove u WordPress-u. Pomoći ćemo vam da rešite probleme koji se javljalju kod konfiguracije Nginx rewrite pravila.

Kako podesiti NGINX Rewrite pravila

Ako vaš sajt radi na Apache web serveru, ne morate da brinete o rewrite pravilima jer će Apache sam da se pobrine o tome i da zapiše odgovarajuća pravila unutar vašeg .htaccess fajla i svi linkovi će raditi bez problema. Zato je Apache strava!

Međutim, ako sajt radi na Nginx web serveru, javljaju se frustracije, često se susrećemo sa problemom „404 error“. Bez obzira na prateće probleme, mi i dalje želimo sajt na Nginx web serveru. Nema problema. Sve što je potrebno da uradimo jeste da dodatamo nekoliko novih rewrite pravila u Ngnix konfiguracioni fajl.

Podešavanje WordPress NGINX Rewrite pravila

Nadamo se da ste već podesili Nginx server. U suprotnom, posetite Nginx Getting Started stranicu. Ovako bi trebalo da izgleda kompletan Nginx konfiguracioni fajl:

server {
         ## Your website name goes here.
         server_name domain.tld;
         ## Your only path reference.
         root /var/vhosts/yoursite;
         ## This should be in your http block and if it is, it's 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 / {
             # include the "?$args" part so non-default permalinks doesn't break when using query string
             try_files $uri $uri/ /index.php?$args;
         }

         location ~ \.php$ {
             try_files $uri =404;
             include fastcgi_params;

             # With php7.0-cgi alone:
             # fastcgi_pass 127.0.0.1:9000;
             
             # With php7.0-fpm:
             fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
             fastcgi_index index.php;
             fastcgi_param SCRIPT_FILENAME /var/www/vhosts/youtsite$fastcgi_script_name;
             fastcgi_split_path_info ^(.+\.php)(/.+)$;
         }

         location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
             expires max;
             log_not_found off;
         }
}

Sa ovakovom konfiguracijom, sve bi trebalo da radi bez problema. Naravno, neophodno je da znate da to sve zavisi od toga kako je server podešen. Za konfiguracije multisajtova i multisajtova sa poddomenima pogledajte ovde.

Pre nego što samo iskopirate kod, pokušajte da razumete. Pokušaćemo da objasnimo najvažnije:

index index.php  određuje sve fajlove i foldere (koje će pretražiti) za izvršenje;

location /  direktiva (traži zahteve samo za /yoursite);

try_files direktiva će da pokuša da pronađe da li određeni fajl ili folder postoji ($uri  $uri/). Ako ne postoji, /index.php  će biti upotrebljen kao podrazumevani fajl za izvršenje (tada smo u mogućnosti da izbacimoindex.php iz staze).

Kada podesite Ngnix kofiguracioni fajl, obavezno restartujete Nginx:

service nginx reload

To je to! Spremno je,samo još da napravimo lepe linkove.

  • Prijavite se u WordPress Admin Panel
  • Pronađite stazu Settings > Permalinks
  • U “Custom Structure” tekstualnom polju, unesite /%postname%/
  • Sačuvajte promene klikom na “Save Changes” dugme

NGINX Podesavanja: Podesavenje permalinkova

Za više informacija o WordPress-u na Nginx web serveru prelistajte dokumentaciju za Nginx rewrite pravila. Možda vam se takođe svidi i Kako povezati Bootstrap sa WordPress temom.