Jak zrozumieć, dlaczego Twoje permalinki nie działają w WordPress?

Opublikowany: 2021-12-27

Wiele zadań związanych z witryną koncentruje się na optymalizacji pod kątem wyszukiwarek (SEO), ponieważ może to zwiększyć widoczność i ranking wyszukiwania. Część Twojej strategii SEO powinna opierać się na strukturach adresów URL, chociaż jeśli Twoje permalinki nie działają w WordPressie, będziesz miał trudności z obniżeniem liczby odwiedzin.

Łatwo jest wiedzieć, kiedy masz zepsuty link bezpośredni, ale to, co nie jest tak łatwe do zrozumienia, to jak to naprawić. W większości przypadków będziesz musiał wskoczyć do plików konfiguracyjnych serwera i wprowadzić pewne zmiany. Jednak szybki reset z poziomu WordPressa może być wszystkim, czego potrzebujesz.

W kilku następnych sekcjach pokażemy, co zrobić, gdy Twoje permalinki nie działają w WordPressie. Po pierwsze, porozmawiamy więcej o zepsutych permalinkach i ich wyglądzie.

Jak wygląda zepsuty link stały w WordPressie

Niezależnie od używanego serwera lub jego konfiguracji, zepsute permalinki wyglądają tak samo. W większości przypadków zobaczysz, że Twoja strona główna jest idealna, podczas gdy inne strony wyświetlają błąd 404:

Strona WPKube 404.

W niektórych konkretnych przypadkach – np. legalnych adresów URL, które w innym przypadku nie istnieją w witrynie – możesz przekierować błędy 404 na swoją stronę główną. Chociaż w wielu przypadkach nie jest to trwałe rozwiązanie, ponieważ często masz ukryty problem, który pozostaje niewykryty.

Co więcej, jeśli Twoje permalinki nie działają w WordPressie, nie będziesz miał o tym pojęcia, chyba że przeglądasz swoją witrynę. Możliwe, że pierwsze wrażenie problemu ma miejsce, gdy użytkownicy wyślą Ci powiadomienie. To nie jest dobre dla User Experience (UX) ani twojej reputacji.

Dlaczego Twoje permalinki nie działają w WordPress

Slugi i permalinki w WordPressie są bardziej aspektem „ustaw i zapomnij” Twojej witryny. Chociaż możesz edytować slugi na zasadzie post-by-post, ustawiasz globalne struktury permalinków po początkowym procesie instalacji WordPressa. Zalecaną typową praktyką jest pozostawienie ich po tym, ponieważ może to wpłynąć na SEO.

W związku z tym zepsute permalinki w WordPressie są trudniejsze do naprawienia, ponieważ nie będziesz miał bezpośredniego udziału w ich łamaniu. Zamiast tego istnieje kilka innych możliwości do zbadania:

  • Jeśli zainstalujesz nową wtyczkę lub zmienisz ustawienia starej, możesz dokonać pośredniej zmiany w swoich permalinkach. Dotyczy to zwłaszcza tych wtyczek, które łączą się z plikami konfiguracyjnymi twojego serwera.
  • Chociaż jest to niewielka szansa, niektóre aktualizacje rdzenia, motywów i wtyczek zepsują Twoje permalinki. Jest to jeden z powodów, dla których warto mieć czystą i aktualną kopię zapasową (więcej o tym później).
  • Mówiąc o tym, jeśli musisz użyć kopii zapasowej do przywrócenia witryny, może to również złamać struktury permalinków. Dotyczy to również migracji Twojej witryny.

Jest jednak jedna przyczyna, dla której Twoje permalinki nie działają w WordPressie, która jest bardziej powszechna: ręczna edycja plików konfiguracyjnych serwera. Jeśli zdecydujesz się majstrować przy tych plikach, spowoduje to takie same szkody, jak wtyczka powodująca konflikt.

Bez względu na przyczynę błędu, będziesz chciał zabrać się do pracy nad jego naprawą. Teraz znasz przyczyny, możesz zacząć kopać i odkrywać, gdzie leży problem.

Czego będziesz potrzebować, aby naprawić zepsute permalinki WordPress

Jeśli jeszcze tego nie zrobiłeś, będziesz musiał wskoczyć do podstawowych plików serwera. Z tego powodu dobrze jest mieć wszystko, czego potrzebujesz, gotowe do rock and rolla. Oto lista kontrolna elementów, które chcesz mieć gotowe:

  • Dostęp administracyjny do Twojego serwera w celu pracy z jego plikami. W większości przypadków nie będzie to wymagało Twojego wkładu — zwłaszcza jeśli jesteś właścicielem witryny.
  • Twoje dane uwierzytelniające serwer, w szczególności dane logowania. Znajdziesz je w panelu sterowania hostingu lub w wiadomości e-mail od dostawcy. Jeśli nie możesz zlokalizować poświadczeń, Twój gospodarz będzie mógł Ci powiedzieć, gdzie się znajdują.
  • Klient Secure File Transfer Protocol (SFTP), taki jak Cyberduck, FileZilla lub Transmit. Każdy z nich jest więcej niż zdolny do prostego przeglądania plików na twoim serwerze.
  • Umiejętności korzystania z SFTP bez powodowania problemów. Jest prawie oczywiste, że będziesz chciał wiedzieć, jak używać SFTP przez cały ten samouczek.
  • Czysta, aktualna i pełna kopia zapasowa Twojej witryny i ewentualnie serwera. Jeśli musisz przywrócić dane z powodu uporczywych (lub wprowadzonych) błędów, Twoja kopia zapasowa stanie się najcenniejszym plikiem, który posiadasz.

Chociaż istnieją opcjonalne narzędzia, takie jak edytor tekstu, nie są one potrzebne. Powyższa lista będzie wszystkim, czego potrzebujesz, aby naprawić permalinki, które nie działają w WordPress.

Jak naprawić permalinki, które nie działają w WordPress

Gdy masz już wszystkie potrzebne narzędzia, umiejętności i usługi, możesz zabrać się do pracy. W ciągu najbliższych kilku minut pokażemy, jak naprawić permalinki, które nie działają w WordPressie w następujący sposób:

  1. Zresetujemy permalinki z pulpitu WordPress i zajmie to kilka sekund.
  2. Sprawdzisz niezgodności z wtyczkami, które mogą mieć wpływ na Twoje permalinki.
  3. W przypadku serwerów Apache pokażemy, gdzie szukać rozwiązania problemu z permalinkami.
  4. Pokażemy Ci również to samo dla serwerów Nginx, ponieważ są one tak samo (jeśli nie bardziej) popularne.

Pod koniec artykułu będziesz mieć odpowiednią wiedzę, aby upewnić się, że możesz rozwiązać wszelkie problemy związane z permalinkami w przyszłości. Jest wiele do przejścia, więc zaczniemy od samego WordPressa.

1. Zresetuj swoje permalinki w WordPress

Mamy nadzieję, że szybkie zresetowanie Twoich permalinków w panelu WordPressa rozwiąże wszelkie Twoje problemy. Powinno to zająć kilka sekund, a ponieważ jest to prosty sposób na rozwiązanie problemu z permalinkami, zalecamy zrobienie tego w pierwszej kolejności.

Aby rozpocząć, przejdź do strony Ustawienia> Permalinki w WordPress:

Strona Permalinki WordPress.

W przypadku większości nowoczesnych instalacji WordPress będziesz mieć strukturę permalink nazwy posta . Chociaż na razie musimy to zmienić tymczasowo. Aby to zrobić, zaznacz dowolny inny przycisk opcji. Jeśli chcesz zachować szczególną ostrożność, nie zmieniając struktury adresu URL, możesz wybrać opcję Niestandardowa struktura i użyć tagu /%postname%/ :

Dodanie niestandardowej struktury linku bezpośredniego.

Następnie zapisz zmiany, ponownie wybierz oryginalną strukturę (w tym przypadku Nazwa posta ), a następnie ponownie zapisz zmiany. Powinno to spowodować zresetowanie Twoich linków bezpośrednich, więc sprawdź swoją witrynę i sprawdź, czy problem został rozwiązany.

2. Sprawdź konflikty i niezgodności wtyczek

Następną metodą naprawienia niedziałających w WordPressie permalinków jest prostsze podejście do popularnego kroku w celu rozwiązania wielu problemów WordPress. Twoje wtyczki (oczywiście) wpływają na niezliczone obszary Twojej witryny, tak bardzo, że nieuczciwa wtyczka może powodować problemy z Twoimi permalinkami.

Standardowym podejściem na tym etapie byłoby zalogowanie się na serwer przez SFTP, ale w tym przypadku nie jest to konieczne. Zamiast tego przejdź do strony Wtyczki> Zainstalowane wtyczki w WordPress:

Strona Wtyczki w WordPressie.

Na tym ekranie zaznacz każde pole wyboru dla każdej wtyczki – możesz użyć globalnego pola wyboru u góry, aby zaoszczędzić czas – i wybierz Dezaktywuj z rozwijanego menu Działania zbiorcze :

Opcja Dezaktywuj z menu rozwijanego Akcje zbiorcze.

Spowoduje to wyłączenie wszystkich wtyczek, ale miejmy nadzieję, że naprawi problem z permalinkami, który wpływa na Twoją witrynę.

Następnie włącz każdą wtyczkę po kolei, aż stwierdzisz, że Twoje permalinki już nie działają. Po znalezieniu wtyczki dezaktywuj ją ponownie i przywróć swoją witrynę do stanu, w jakim była, bez naruszającej wtyczki.

W tym momencie masz kilka opcji:

  • Całkowicie usuń wtyczkę, jeśli jej już nie potrzebujesz.
  • Znajdź alternatywę, zaczynając od katalogu wtyczek WordPress.
  • Skontaktuj się z programistą, aby powiadomić ich o tym i poprosić o poprawkę.

W każdym razie będziesz chciał wyłączyć wtyczkę, dopóki nie uzyskasz rozwiązania, ponieważ nie chcesz, aby Twoje permalinki pozostały uszkodzone.

3. Skonfiguruj swój serwer Apache

Chociaż nie są teraz tak popularne jak wcześniej, serwery Apache są nadal solidnym sposobem na hostowanie Twojej witryny. Co więcej, są one proste do zarządzania dla przeciętnego użytkownika (co ma wady, ale to na inny artykuł).

W związku z tym rzućmy okiem na kilka zadań, które możesz wykonać, aby przywrócić działanie permalinków WordPress.

Pracuj z plikiem .htaccess , aby ponownie uruchomić permalinki

Podobnie jak przełączanie różnych struktur permalinków w WordPressie, możesz także zresetować swój plik .htaccess . Dla nieświadomych jest to plik konfiguracyjny, który pomaga serwerowi zarządzać jego zawartością. Możesz go edytować za pomocą nowych instrukcji, ale w tym przypadku chcemy go wyłączyć (lub przynajmniej nie pozwolić serwerowi na tymczasowe korzystanie z niego).

Możesz edytować plik .htaccess za pomocą nowych instrukcji, ale w tym przypadku chcemy go wyłączyć (lub przynajmniej nie pozwolić serwerowi na tymczasowe korzystanie z niego).

W tym celu będziesz chciał zalogować się na swój serwer przy użyciu danych, które uzyskałeś wcześniej i wybranego klienta SFTP. Gdy już będziesz w środku, będziesz chciał przejść do właściwej witryny. Jeśli jest to jedyny serwer na twoim serwerze, nie powinno to być zbyt trudne. Chociaż w więcej niż jednej witrynie poszukaj czegoś o określonej nazwie.

Jeśli nie widzisz nazwy swojej witryny, może to oznaczać, że jest to podstawowa instalacja na Twoim serwerze. W takim przypadku poszukaj www , root , public_html lub czegoś podobnego. Znajdą się tam pliki Twojej witryny.

Gdy znajdziesz się we właściwym miejscu, poszukaj swojego pliku .htaccess . Powinien znajdować się w katalogu najwyższego poziomu:

Plik .htaccess w Cyberducku.

Chociaż możesz wykonać kopię zapasową tego pliku, pozostanie on na Twoim serwerze, ale pod inną nazwą. Aby to zrobić, kliknij plik prawym przyciskiem myszy iz menu kontekstowego znajdź opcję Zmień nazwę (lub podobną):

Zmiana nazwy pliku w Cyberduck.

Spowoduje to, że WordPress pominie plik .htaccess , tak jakby on nie istniał. Stąd będziesz chciał zresetować swoje permalinki zgodnie z pierwszym krokiem w naszym przewodniku. Spowoduje to utworzenie zupełnie nowego pliku .htaccess na twoim serwerze i w którym momencie możesz sprawdzić, czy twoje permalinki nie działają.

Jeśli działają, coś w pliku .htaccess będzie przyczyną błędu permalinków. Możesz chcieć wykonać kilka operacji wycinania i wklejania, aby znaleźć wiersze powodujące problem, ale ponieważ masz zupełnie nowy plik .htaccess gotowy do użycia, może nie być takiej potrzeby.

Dodaj regułę AllowOverride do swojej konfiguracji Apache Plik

Aby uzyskać następną wskazówkę, musisz znajdować się w folderze głównym serwera. Jest to najwyższy poziom, do którego masz dostęp, i pamiętaj, że niektórzy gospodarze mogą Ci na to nie pozwolić. W związku z tym, jeśli korzystasz z serwera współdzielonego, nie będzie to dla ciebie opcja. Jednak osoby zarządzające serwerem lub korzystające z wirtualnej sieci prywatnej (VPN) mogą wykonać następujące czynności.

Będziesz wiedział, czy jesteś we właściwym miejscu, ponieważ będzie tam folder etc. Podczas gdy niektóre serwery będą miały ścieżkę i plik etc/httpd/httpd.conf , serwery Linux mogą używać etc/apache2/apache2.conf :

Serwer pokazujący ścieżkę do pliku konfiguracyjnego Apache.

Będziesz chciał dodać regułę do pliku apache2.conf , która pozwoli ci nadpisać pewne aspekty serwera na podstawie katalogu. Nie będziemy tutaj wchodzić w szczegóły, ponieważ nie musisz rozumieć zawiłości. Jednak przed próbą wykonania tej kopii upewnij się, że wykonałeś kopię zapasową.

Wróć do swojego klienta SFTP, przejdź do pliku apache2.conf i otwórz go w edytorze tekstu. Wewnątrz poszukaj następującego pakietu kodu:

 <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

Będziesz chciał zmienić wiersz AllowOverride None na AllowOverride All . Po zapisaniu zmian sprawdź, czy Twoje permalinki działają. Jeśli nie, może być konieczne ponowne uruchomienie serwera. Jest to zaawansowana technika wykorzystująca dostęp Secure Shell (SSH). Omówimy to w innym artykule na blogu.

Kiedy jesteś na swoim serwerze, wpisz sudo systemctl restart apache2 , aby go zrestartować. Ze względu na złożoność różnych hostów będziesz chciał z nimi porozmawiać, jeśli napotkasz jakiekolwiek problemy. Wiele hostów ma niestandardowy sposób uzyskiwania dostępu do serwera i będziesz chciał znaleźć najbardziej optymalne podejście.

4. Skonfiguruj swój serwer Nginx

Nginx to super zgrabny samochód wyścigowy w porównaniu do hot roda Apache z blaszanym dachem. W związku z tym ma wielu fanów i duży udział w rynku w porównaniu z konkurencją.

Wadą jest to, że znalezienie potrzebnych plików jest trudniejsze niż w przypadku innych typów serwerów. Jednak nadal jest to możliwe, więc pokażemy Ci, jak naprawić permalinki, które nie działają na serwerach Nginx.

Znajdź swój plik konfiguracyjny Nginx

Najpierw musisz znaleźć odpowiedni plik konfiguracyjny. Być może będziesz musiał skonsultować się z hostem, aby uzyskać dokładną lokalizację na serwerze tutaj. Dla nas plik znajduje się w katalogu etc/nginx/site-enabled/ , ale twój może się różnić.

Gdy już znajdziesz się w środku, poszukaj pliku o nazwie default.conf lub pliku o nazwie odpowiadającej Twojej witrynie – ponownie skonsultuj się z hostem, jeśli zajdzie taka potrzeba. Pliki konfiguracyjne Nginx używają bloków kodu do definiowania różnych reguł, a będziesz wiedział, czy plik jest poprawny, ponieważ pojawi się blok, który zaczyna się od server { .

Gdy znajdziesz ten blok, możesz go zmienić w zależności od tego, czy Twoja witryna znajduje się w katalogu głównym, czy w podkatalogu.

Zmień swój plik konfiguracyjny Nginx

Z otwartym plikiem default.conf i kursorem poruszającym się po bloku server , poszukaj innego wciętego bloku, tym razem dla location / . W ramach dodaj następujące:

try_files $uri $uri/ /index.php?$args;

Pełny blok powinien być podobny do następującego:

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

Będzie to miało zastosowanie tylko wtedy, gdy witryna znajduje się w katalogu głównym serwera. Jeśli Twoja witryna znajduje się w podkatalogu – być może jest to jedna z wielu witryn – będziesz chciał wskazać lokalizację tego podkatalogu:

 location /subdirectort/ try_files $uri $uri/ /subdirectory/index.php?$args;

Po zapisaniu zmian uruchom ponownie serwer za pomocą sudo systemctl reload nginx . Podobnie jak w przypadku instrukcji Apache, możesz nie być w stanie tego zrobić, w takim przypadku porozmawiaj ze swoim gospodarzem i poproś go o pomoc.

Zawijanie

Twoje linki bezpośrednie stanowią czytelny dla człowieka sposób uzyskiwania dostępu do postów i stron w Twojej witrynie. Jeśli się nie powiedzie, opad może rzucić Twoją witrynę na kolana. Dość często pierwszą rzeczą, o której dowiesz się o tym, że Twoje permalinki nie działają w WordPressie, jest duża liczba błędów 404, które otrzymają Twoi użytkownicy.

Aby to naprawić, najlepszym scenariuszem będzie zresetowanie permalinków w WordPressie. Chociaż w wielu innych przypadkach będziesz musiał otworzyć serwer i usunąć (lub w inny sposób zmienić) pliki, aby wszystko działało ponownie. Ten post powinien oferować umiejętności i przepływ pracy, których potrzebujesz, aby naprawić statek i kontynuować żeglugę.

Czy Twoje permalinki nie działają w WordPressie, coś, z czym miałeś do czynienia wcześniej, czy coś, czego doświadczasz teraz? Podziel się swoimi sytuacjami i radami zaradczymi w sekcji komentarzy poniżej!