Jak u WordPressu zamezit přepisování .htaccessu

Upraveno 6 prosince, 2023 06:04

WordPress a některé pluginy, které na něm používáte si přidávají pro vlastní konfiguraci kód do souboru .htaccess. Pokud v něm máte i vlastní kód, nebo např. různá přesměrování či pravidla, může se Vám stát, že se Váš vlastní kód za určitých podmínek přepíše. Proto se dnes podíváme na to, jak tomuto jevu zabránit a jak u WordPressu zamezit přepisování .htaccessu (resp. jak zamezit přepisování Vašeho vlastního kódu).

Proč WordPress přepisuje obsah souboru .htaccess?

Konfigurační soubor .htaccess pro webový server Apache ukládá důležité nastavení redakčního systému a různá pravidla, která definují, jak se má systém nebo jednotlivé pluginy chovat.. Kupříkladu díky tomuto souboru např. funguje i přepis URL adres na tzn. hezké URL.

K přepisu dat v souboru .htaccess dochází například vždy, když v systému změníte strukturu hezkých URL adres. WordPress si v tu chvíli do souboru uloží nová pravidla pro rewrite. To samé provádí i některé pluginy, které v něm mají uložený kód. Proto pokud změníte nastavení takového pluginu, automaticky si sáhne do souboru .htaccess a pravidla v něm si upraví.

Díky tomu se může stát, že se přepíšou, resp. smažou Vaše vlastní pravidla, která jste do .htaccess souboru uložili dříve.

Jak u WordPressu zamezit přepisování .htaccessu

Dobrá zpráva ale je, že vlastní pravidla můžete do .htaccessu vkládat tak, aby k přepisu za výše uvedených situací nedocházelo.

Zde máte základní pravidla, která nedělat, aby k tomuto jevu nedocházelo.

Nevkládejte svá pravidla mezi WordPress značky

Pravidla, která si definuje samotný redakční systém jsou označené tzv. značkami.

V souboru je můžete identifikovat tak, že se na začátku kódu objeví komentář “# BEGIN WORDPRESS” a na konci zase “# END WORDPRESS“. Všechny kódy, které se nacházejí mezi těmito značkami, patří samotnému systému WordPress. Pokud vložíte svá vlastní pravidla mezi tyto značky, budou přepsána při každém generování nových pravidel redakčního systému. Proto je důležité neumisťovat žádná vlastní pravidla mezi těmito dvěma značkami.

Jak u WordPressu zamezit přepisování .htaccessu

Nevkládejte svá pravidla mezi značky pluginů

To samé platí i pro pluginy. Každý plugin, který modifikuje pravidla v souboru .htaccess má tyto pravidla označená. Značení je stejné, akorát za slovem BEGIN a END bývá jméno pluginu. Např. tedy # BEGIN WP FASTEST CACHE a # END WP FASTEST CACHE. I zde platí výše uvedené a pokud nechcete přijít o svá pravidla pokaždé, kdy změníte nastavení cache pluginu, nevkládejte žádná vlastní pravidla mezi tyto dvě značky.

Jak u WordPressu zamezit přepisování .htaccessu

Vytvořte si vlastní značky pro svá vlastní pravidla

Pokud modifikujete pravidla v .htaccessu, vytvořte si v něm vlastní sekci a tu označte. Opět použijte označení BEGIN pro začátek a END pro konec. Uvedu příklad.

				
					# BEGIN moje vlastní pravidla
RewriteEngine On
RewriteCond %{HTTP_HOST} ^blog\.jirivanek\.eu$
RewriteRule ^(.*)$ http://www.blog.jirivanek.eu/cs/$1 [R=301,L]
# END moje vlastní pravidla
				
			

Zde je vidět příklad kódu, který provádí automatické přesměrování domény bez www na doménu s www. Jak je z příkladu vidět, mám pravidla označené vlastním komentářem (komentář v souboru .htaccess se vytváří za pomoci znaménka # – zkratka ALT + X). Pokud si takto udělám vlastní sekci s pravidly, oddělenou od sekcí, které si vytvořil systém či pluginy, mám jistotu, že tato sekce se nebude přepisovat při jakékoliv změně nastavení, kterou provedu v administraci WordPressu.

Jak u WordPressu zamezit přepisování .htaccessu pomocí změny práv na FTP

Dalším způsobem, který lze použít je změna práv souboru pomocí FTP. Každý soubor na Linuxovém serveru má práva, která říkají, který uživatel smí soubor číst a který jej smí modifikovat. Standardně má soubor práva nastavená na 755. Pokud se přihlásíte na FTP, můžete práva na souboru .htaccess změnit na 444, díky čemuž pak WordPress ani pluginy nebudou mít možnost do souboru zasahovat. Pokud byste poté z jakéhokoliv důvodu chtěli WordPressu přepis povolit, stačí vrátit práva souboru stejným způsobem zpět na 755.

Jak u WordPressu zamezit přepisování .htaccessu

Zákaz přepisu souboru pomocí wp-config.php

Posledním způsobem, jak se přepisu vyhnout je úprava konfiguračního souboru WordPressu pomocí tohoto kódu:

				
					add_filter('got_rewrite', '__return_false');
				
			

Přihlaste se na FTP, v kořenovém adresáři webu si najděte soubor wp-config.php a vložte do něj manuálně výše uvedený řádek. Jakmile soubor uložíte, WordPress nadále nebude provádět žádné změny v tomto souboru. Je důležité mít na paměti, že Vám tedy nebude fungovat ani změna formátu URL adres a pod., jelikož WordPress nebude mít povoleno provádět úpravy v souboru.

Závěr 

Jak jste se mohli dozvědět, možností jak u WordPressu zamezit přepisování .htaccessu je vícero. Pravděpodobně nejjednodušší bude možnost první. Tedy udělat si vlastní sekce a vkládat svá pravidla na správná místa. Díky tomu nadále zachováte automatické funkce WordPressu a zároveň nebude riskovat, že při jakékoliv změně nastavení ztratíte své, někdy dost těžce napsané pravidla. Nicméně výběr metody je pouze na Vás.

Více článků o WordPressu

Celá kategorie je zde

Web je vytvářen s pečlivostí k obsaženým informacím. Snažím se poskytovat kvalitní a užitečný obsah, který ostatním pomáhá, nebo je inspiruje. Pokud jste spokojeni s mou prací a chtěli byste mě podpořit, můžete to udělat prostřednictvím jednoduchých možností.

Byl pro Vás tento článek užitečný?

Klikni na počet hvězd pro hlasování.

Průměrné hodnocení. 5 / 5. Počet hlasování: 1

Zatím nehodnoceno! Buďte první

Jak užitečný vidíte tento článek.

Sledujte mě na sociálních médiích.

Je mi líto, že pro Vás nebyl článek užitečný.

Jak mohu vylepšit článek?

Řekněte mi, jak jej mohu zlepšit.

newsletter

Odebírejte Newsletter

Buďte v obraze! Připojte se k odběru newsletteru a buďte první, kdo získá nejnovější informace přímo do vaší e-mailové schránky. Sledujte aktuality, exkluzivní události a inspirativní obsah, přímo na Vašem e-mailu.  

Odebírat
Upozornit na
guest
2 Komentáře/ů
Nejstarší
Nejnovější Nejvíce hlasováno
Vložené zpětné vazby.
Zobrazit všechny komentáře.
Radek Krátký

Nesouvisí to přímo s obsahem článku, ale nevíte někdo, jak upravit htaccess soubor na přepis domény tak, aby neobsahovala www?

Pokud mi chcete napsat rychlou zprávu, využije, prosím, níže uvedený
kontaktní formulář. Děkuji.

Další Kontaktní údaje