Skocz do zawartości


 

Zdjęcie

nginx - problem z rewrite

nginx - problem z rewrite nginx problem permalinks wordpress

  • Proszę się zalogować aby odpowiedzieć
6 odpowiedzi na ten temat

nginx - problem z rewrite

#1 Leszy

Leszy

    Nowy użytkownik

  • Użytkownicy
  • 4 postów

Napisany 28 maj 2016 - 13:36

Mam następujący problem do rozwiązania. Poprzednio trzymałem stronę na lighttpd na której obowiązywały następujące bezpośrednie odnośniki:

/kategoria/nazwa_posta.html

Teraz, po przeniesieniu się na nginx aby takie linki działały musiałem dodać regułę do vhost:

if (!-e $request_filename)
{
rewrite ^(.+)$ /index.php?q=$1 last;
}

Co połowicznie rozwiązało problem - wordpress przestał walić 404 przy odsyłaniu do mojego bloga.

Problem nastąpił natomiast z funkcjonowaniem całego skryptu - żadna wtyczka cachująca nie chce działać (na 100% z powodu dopisanego .html )
Aby nie stracić pozycji w google potrzebna mi regułka która usunie rozszerzenie .html tzn taki odnośnik

/kategoria/nazwa_posta.html

z automatu przerobi na

/kategoria/nazwa_posta

Jednak zupełnie nie mam pojęcia jak się do tego zabrać.
Z góry dziękuję za pomoc


  • 0

#2 Fizyda

Fizyda

    Stały użytkownik

  • WHT Pro
  • PipPipPipPipPip
  • 495 postów

Napisany 28 maj 2016 - 20:47

Użyj konwertera rewrite do nginxa na regułach które wygenerował Ci wordpress w .htaccess.


  • 0

#3 Leszy

Leszy

    Nowy użytkownik

  • Użytkownicy
  • 4 postów

Napisany 28 maj 2016 - 23:37

Problem w tym, że wordpress nic mi nie wygenerował (nie mam nawet htacces w roocie) regułkę dopisującą .html  znalazłem gdzieś w sieci.


  • 0

#4 Gość_Dew_*

Gość_Dew_*
  • Goście

Napisany 29 maj 2016 - 07:53

Jaką masz wtyczkę do cache? WP Super Cache lub W3 Total Cache - zawsze korzystałem z tego i było ok.


  • 0

#5 Leszy

Leszy

    Nowy użytkownik

  • Użytkownicy
  • 4 postów

Napisany 29 maj 2016 - 10:15

Testowałem kilka wtyczek cache, wszystkie działają jeżeli w konfigu vhosta zakomentuję w/w regułkę. Jeżeli nginx zaczyna dopisywać .html do adresu każda wtyczka cachująca głupieje. Właściwie to pomyślałem, aby nie korzystać już z tych html'ków tylko jakoś te wyrażenia regularne nie chcą się mi wbić do głowy :/


  • 0

#6 Pan Kot

Pan Kot

    Mrrr

  • Zbanowani
  • PipPipPipPipPipPipPipPip
  • 2819 postów

Napisany 29 maj 2016 - 16:24

Masz wordpressa, który generuje treść dynamicznie, w oparciu o kod i bazę SQL, i dziwisz się, że wtyczki cacheujące głupieją jak widzą, że user odwołuje się do statycznego contentu?

 

Wywal to co napisałeś, wstaw to do vhosta gdzie masz zdefiniowanego wordpressa:

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

I restart nginxa.

 

Od tego momentu będziesz miał tzw. przyjazne linki, czyli zamiast sklep.pl/promocja.html będzie sklep.pl/promocja, tak jak powinno być od początku. Wystarczy, że skonfigurujesz teraz wordpressa z tą opcją i poprawisz ten cały bajzel, który zrobiłeś do tej pory.


Edytowany przez Archi, 29 maj 2016 - 16:26.

  • 1

#7 Leszy

Leszy

    Nowy użytkownik

  • Użytkownicy
  • 4 postów

Napisany 30 maj 2016 - 10:29

No właśnie w tym problem, że linki zdefiniowane jako

/%category%/%postname%.html

działały na lighttpd (wraz z cache) a na nginx nie chcą. Jeżeli teraz ustawie odnośniki jako

/%category%/%postname%

Cache zaczyna działać, problem w tym że strony zindeksowane w google mają te .html na końcu i trzeba to przepisać tak aby to "zjadło" zanim czytelnik trafi na moją stronę gdyż w innym wypadku trafi go 404 prosto w głowę ;)


  • 0






Także otagowane jednym lub więcej z tych słów kluczowych: nginx, problem, permalinks, wordpress

0 użytkowników czyta ten temat

0 użytkowników, 0 gości, 0 anonimowych użytkowników