Błąd mapy witryny z WordPress SEO by Yoast na serwerze NGINX

Po zainstalowaniu WordPressa na serwerze NGINX nie wszystko działa od razu, tak jak ma to miejsce przy instalacji na serwerze Apache.

Okazuje się, że np. wtyczka WordPress SEO by Yoast nie generuje poprawnie mapy witryny (plik XML).
Po wpisaniu w przeglądarce adresu http://example.com/sitemap.xml następuje przekierowanie na http://example.com/sitemap_index.xml, jednak zamiast mapy witryny pojawia się błąd 404.

Wtyczka WordPress SEO by Yoast sugeruje, aby w pliku konfiguracyjnym serwera NGINX dotyczącym odpowiedniej witryny dopisać:

rewrite ^/sitemap_index\.xml$ /index.php?sitemap=1 last;
rewrite ^/([a-zA-Z0-9_-])\-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;

Po dopisaniu powyższego w konfiguracji NGINX-a, mapa witryny zaczyna działać, roboty sieciowe będą w stanie jej użyć.
Jednak w przeglądarce mapa witryny nie wygląda tak jak założył to autor wtyczki WordPress SEO. XML-owa mapa witryny miała być przekształcana w czytelny dokument za pomocą pliku XSL, a konkretnie arkusza XSLT. Jednak okazuje się, że pod adresem http://example.com/main-sitemap.xsl, pod którym miał być arkusz XSLT pojawia się błąd 404.
Aby temu zaradzić należy dodać jeszcze jedną własną regułę do w konfiguracji NGINX-a:

rewrite ^/([a-z]+)\-?sitemap\.xsl$ /index.php?xsl=$1 last;

Reguły przepisywania adresów należy wpisywać pliku konfiguracyjnym w sekcji server albo location:

server {
   server_name example.com;
   # ...
}

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

To prevent spam, URLs are not allowed in comments. All comments are moderated and subject to approval.
Aby zapobiec spamowi, adresy URL nie są dozwolone w komentarzach. Wszystkie komentarze są moderowane i podlegają zatwierdzeniu.