Jak zatrzymać WordPress przed nadpisywaniem pliku .htaccess?

Opublikowany: 2024-08-28

Jest to częsty problem, z którym boryka się wielu użytkowników WordPressa: WordPress niechcący nadpisuje lub edytuje niestandardowy plik .htaccess, samodzielnie lub za pośrednictwem swoich wtyczek.

Zwykle dzieje się to niezauważone i nie ma bezpośredniego wpływu na treść witryny, dopóki coś nie zacznie działać nie tak lub nie zostaną wprowadzone niepożądane zmiany.

Domyślnie WordPress, w zależności od konfiguracji i ustawień uprawnień, może automatycznie edytować lub nadpisać plik .htaccess w trybie cichym. Nawet wtyczki WordPress mają tendencję do modyfikowania pliku .htaccess, aby pasował do ich konfiguracji.

Chociaż jest to ogólnie nieszkodliwe, może stać się problematyczne, gdy wtyczki lub motywy innych firm dodają kod, który zastępuje podstawowe ustawienia witryny, co może prowadzić do zagrożeń bezpieczeństwa lub problemów z wydajnością.

Aby pomóc Ci zapobiec takim sytuacjom, podpowiemy Ci, jak zapobiec nadpisaniu pliku .htaccess. Zatem bez dalszej zwłoki przejdźmy do rzeczy.


Spis treści
Jak działa plik .htaccess i dlaczego Wpoven w ogóle nadpisuje zawartość pliku .htaccess?
Jak uniemożliwić WordPressowi nadpisanie reguł pliku .htacess?
Wniosek
Często zadawane pytania

Jak działa plik .htaccess i dlaczego Wpoven w ogóle nadpisuje zawartość pliku .htaccess?

Najlepszym sposobem, aby zapobiec nadpisaniu pliku .htaccess przez WordPress lub wtyczki, jest najpierw dowiedzenie się, jak działa plik .htaccess. Pomoże Ci to znaleźć przyczynę problemu i zrozumieć, czego nie robić.

Zatem pliki .htaccess przypominają zbiór zasad zawierający zestaw instrukcji dotyczących zachowania Twojej witryny.

Jego głównym celem jest zarządzanie sposobem wyświetlania treści i działaniem niektórych wtyczek. Na przykład z pliku .htaccess możesz także ustawić regułę przekierowania 301, dzięki czemu adresy URL będą przyjazne dla SEO i przejrzyste.

Ale jeśli Ty lub ktoś inny spróbuje zaktualizować witrynę, na przykład zmienić strukturę adresu URL, WordPress automatycznie zaktualizuje również plik .htaccess, aby odzwierciedlić te zmiany.

Podobnie, gdy instalujesz wtyczki WordPress, których możesz użyć do dodania dodatkowych funkcji do swojej witryny, możesz również dodać do pliku własne reguły/instrukcje.

Ale to nie jest problem. Problem polega na tym, że gdy nastąpią te zmiany, oryginalne instrukcje, które wprowadzisz, mogą zostać nadpisane, zastąpione lub usunięte.

Może to zepsuć działanie lub wygląd Twojej witryny, nawet jeśli nie było to zamierzone. Aby więc zatrzymać lub zapobiec takim scenariuszom, należy postępować zgodnie z kilkoma wskazówkami/instrukcjami wymienionymi poniżej:


Jak uniemożliwić WordPressowi nadpisanie reguł pliku .htacess?

Ponieważ plik .htaccess zawiera reguły lub instrukcje, na podstawie których działa Twoja witryna, można do niego również dodać niestandardowy zestaw reguł, aby zapobiec jego nadpisaniu w powyższych scenariuszach.

Oto jak możesz to zrobić.

  • Unikaj dodawania lub edytowania reguł pomiędzy znacznikami lub tagami WordPress
  • Unikaj dodawania lub edytowania reguł pomiędzy znacznikami wtyczek lub tagami
  • Ustaw uprawnienia do pliku, aby uniknąć nadpisania przez WordPress pliku .htaccess
  • Powstrzymaj WordPress przed nadpisaniem pliku .htacess, wstawiając kod do pliku wp-config.php

1. Unikaj dodawania lub edytowania reguł pomiędzy znacznikami lub tagami WordPress

Jak już wspomnieliśmy, WordPress używa pliku .htaccess do zarządzania niektórymi ustawieniami WordPress, takimi jak tworzenie uporządkowanych i przejrzystych adresów URL przyjaznych SEO.

Kiedy zmieniasz struktury adresów URL, zwane także „permalinkami”, WordPress automatycznie aktualizuje również kod w tym pliku.

Te ustawienia bezpośredniego łącza są zapisywane pomiędzy dwoma tagami lub znacznikami WordPress: # BEGIN WordPress i # END WordPress .

Avoid adding or editing rules between the WordPress markers or Tags
Unikaj dodawania lub edytowania reguł pomiędzy znacznikami lub tagami WordPress

Ten konkretny obszar pomiędzy tymi dwoma tagami WordPress jest całkowicie zarezerwowany dla WordPressa i ostrzega również, że wszelkie zmiany wprowadzone pomiędzy tymi znacznikami zostaną nadpisane przy następnej aktualizacji pliku przez WordPress.

Co należy zrobić : Ale najlepsze jest to, że WordPress nie będzie dotykał żadnego kodu, który dodasz poza tymi znacznikami lub tagami. Oznacza to, że jeśli chcesz dodać jakiś niestandardowy kod, spróbuj wstawić lub dodać go na górze pliku, przed znacznikiem # BEGIN WordPress .

Nie: unikaj jednak wstawiania lub dodawania własnego kodu pomiędzy znacznikami WordPress, ponieważ zostanie on usunięty lub zastąpiony za każdym razem, gdy WordPress zaktualizuje swoje ustawienia. Aby zapewnić bezpieczeństwo ustawień niestandardowych, zawsze umieszczaj je poza tymi znacznikami.


WPOven

2. Unikaj dodawania lub edytowania reguł pomiędzy znacznikami wtyczek lub tagami

Podobnie jak w przypadku znaczników WordPress, również i tutaj należy unikać edytowania lub dodawania reguł pomiędzy znacznikami lub tagami wtyczek.

Dzieje się tak dlatego, że wtyczki mogą również dodawać własne reguły do ​​pliku .htaccess podobnie jak WordPress, a kiedy to robią, rezerwują obszar za pomocą specjalnych znaczników lub tagów zawierających nazwę wtyczki.

Na przykład, jeśli wtyczka o nazwie „WProcket” dodaje reguły, oznaczy je # BEGIN WP Rocke t Browser Cache i # END WP Rocket Browser Cache.

Avoid adding or editing rules between the Plugin markers or Tags
Unikaj dodawania lub edytowania reguł pomiędzy znacznikami wtyczek lub tagami

Oznacza to, że wszelkie instrukcje lub reguły, które wtyczka dodaje pomiędzy tymi dwoma znacznikami, są w pełni kontrolowane tylko przez wtyczkę. Jeśli zmienisz ustawienia wtyczki, zaktualizuje ona te reguły i potencjalnie zastąpi wszystko pomiędzy tymi znacznikami lub tagami.

Jeśli więc masz jakieś niestandardowe reguły, których nie chcesz stracić, nie umieszczaj ich pomiędzy znacznikami specyficznymi dla wtyczki.

Dodaj niestandardowe reguły za pomocą niestandardowych znaczników lub tagów

Zamiast tego możesz utworzyć znaczniki lub tagi, aby dodać dowolne niestandardowe reguły i oddzielić je od sekcji generowanych przez WordPress i wtyczki.

Ta metoda zagwarantuje, że wszelkie modyfikacje lub zmiany wprowadzone w administracji WordPress lub ustawieniach wtyczki nie zastąpią tej sekcji.

Oto jak możesz to zrobić:

Załóżmy, że musisz przekierować każde żądanie skierowane yourdomain.com na https://www.yourdomain.com , tak aby odwiedzający zawsze trafiali na wersję Twojej witryny zawierającą „www” w adresie URL.

Aby zaimplementować tę niestandardową regułę, użyj tagów # BEGIN Custom Rules # END Custom Rules u góry pliku .htaccess . Następnie dodaj swoje instrukcje lub niestandardowe reguły w obrębie tych znaczników.

Będzie to mniej więcej tak:

# BEGIN Custom Rules

RewriteEngine On

RewriteCond %{HTTP_HOST} ^yourdomain\.com$

RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R=301,L]

# END Custom Rules


Przeczytaj: Plik WordPress .htaccess: jak go utworzyć i edytować?


3. Ustaw uprawnienia do pliku, aby zapobiec nadpisywaniu przez WordPress pliku .htaccess

Trzecią metodą, która może pomóc zapobiec nadpisaniu pliku .htaccess przez WordPress, jest ustawienie uprawnień pliku na „tylko do odczytu”.

Aby to zaimplementować, musisz uzyskać dostęp do pliku .htaccess za pomocą klienta FTP lub menedżera plików dostarczonego przez dostawcę hostingu WordPress.

Po zalogowaniu się do klienta FTP lub menedżera plików poszukaj pliku .htaccess , który najprawdopodobniej znajduje się w katalogu głównym instalacji WordPress.

Następnie kliknij plik prawym przyciskiem myszy i wybierz opcję „Uprawnienia do pliku”.

Set file permission to avoid WordPress from overwriting .htaccess file
Ustaw uprawnienia do pliku, aby uniknąć nadpisania przez WordPress pliku .htaccess

Pojawi się wyskakujące okienko ze wszystkimi atrybutami pliku, w którym ustawieniem domyślnym jest zazwyczaj 644, ale można to zmienić na 444, wpisując wartość bezpośrednio w polu „Wartość numeryczna” lub upewniając się, że tylko „Odczyt” pola są zaznaczone.

Set file attributes in the .htaccess file to read-only.
Ustaw atrybuty pliku w pliku .htaccess na tylko do odczytu

Ustawiając uprawnienia pliku .htaccess na 444 (tylko do odczytu), plik będzie chroniony przed modyfikacją.

Uwaga: Zawsze pamiętaj, że uniemożliwi to również wprowadzanie jakichkolwiek zmian w pliku. Jeśli chcesz zaktualizować plik, będziesz musiał tymczasowo zmienić uprawnienia z powrotem na 644.


4. Powstrzymaj WordPress przed nadpisaniem pliku .htacess, wstawiając kod do pliku wp-config.php

Ostatnią metodą, którą możesz wdrożyć, jest wstawienie następującego fragmentu kodu do pliku wp-config.php.

add_filter('got_rewrite', '__return_false');

To podejście jest przydatne, jeśli chcesz uniemożliwić WordPressowi modyfikowanie pliku .htaccess bez wpływu na wtyczki.

Uwaga: edytowanie lub obsługa podstawowych plików WordPress może być ryzykowna i może spowodować potencjalne uszkodzenie Twojej witryny, jeśli coś pójdzie nie tak. Wskazane jest zwrócenie się o pomoc do eksperta lub skontaktowanie się z twórcą strony internetowej.

Aby to teraz wdrożyć,

1. Zaloguj się do swojego cPanelu lub FTP przy użyciu swoich danych uwierzytelniających.

2. Przejdź do katalogu głównego swojej witryny i znajdź plik wp-config.php .

3. Otwórz plik wp-config.php do edycji.

Opening Wp-config.php file
Otwieranie pliku Wp-config.php

4. Ręcznie dodaj następującą linię do pliku, jak pokazano na obrazku

add_filter('got_rewrite', '__return_false');

Inserting code in the Wp-config.php file to stop WordPress from overwriting the .htaccess file
Wstawienie kodu do pliku Wp-config.php, aby zapobiec nadpisaniu przez WordPress pliku .htaccess

5. Po dodaniu kodu zapisz plik.

6. Po zapisaniu WordPress nie będzie już mógł wprowadzać żadnych modyfikacji w pliku, w tym zmian w formacie adresu URL ani innych powiązanych ustawieniach.

Po zastosowaniu tej metody WordPress nie będzie mógł wprowadzać żadnych modyfikacji ani zastępować pliku .htaccess.


WPOven Dedicated Hosting

Wniosek

Zawsze powtarza się, że lepiej zapobiegać niż leczyć. Podobnie możesz podjąć środki zapobiegawcze, takie jak unikanie dodawania lub edytowania reguł pomiędzy znacznikami lub tagami WordPress, a także pomiędzy znacznikami i tagami wtyczki WordPress.

Dodatkowo możesz skonfigurować pewne reguły i użyć metody tylko do odczytu, aby całkowicie uniemożliwić jakiekolwiek modyfikacje pliku .htaccess .

Mamy nadzieję, że powyższe metody pomogą Ci powstrzymać WordPress przed nadpisaniem pliku .htaccess . Jeśli masz jakiekolwiek pytania dotyczące tego wpisu, daj nam znać w sekcji komentarzy poniżej.


Często zadawane pytania

Czy procesy aktualizacji WordPress będą miały wpływ na moje dostosowane reguły .htaccess?

Nie, aktualizacje WordPress nie będą miały wpływu na Twoje niestandardowe reguły .htaccess , jeśli zostaną umieszczone poza znacznikami # BEGIN WordPress i # END WordPress . WordPress modyfikuje tylko kod pomiędzy tymi znacznikami.

Czy są jakieś wady korzystania z części niestandardowego pliku .htaccess?

Tak, niestandardowe reguły .htaccess mogą wprowadzać złożoność, potencjalnie prowadząc do konfliktów lub błędów. Jeśli nie skonfigurujesz prawidłowo reguł, może to również wpłynąć na wydajność Twojej witryny lub spowodować problemy z serwerem. Dodatkowo zasady te mogą wymagać aktualizacji w przypadku zmiany konfiguracji serwera, wtyczek lub samego WordPressa. Istnieją również zagrożenia bezpieczeństwa, ponieważ nieprawidłowe reguły mogą przypadkowo stworzyć luki w zabezpieczeniach, jeśli nie będą odpowiednio zarządzane.

Jak mogę się upewnić, że podczas aktualizacji wtyczki moje spersonalizowane reguły .htaccess nie zostaną utracone?

Aby zapewnić bezpieczeństwo niestandardowych reguł .htaccess podczas aktualizacji wtyczek, pamiętaj o umieszczeniu reguł poza znacznikami # BEGIN i # END używanymi przez WordPress i wtyczki. Możesz także tworzyć własne znaczniki, aby oddzielić reguły. Regularnie twórz kopię zapasową pliku .htaccess , aby w razie potrzeby móc go łatwo przywrócić. Po zaktualizowaniu wtyczek sprawdź plik .htaccess , aby upewnić się, że niestandardowe reguły nadal tam są i nie zostały utracone.