Triky s .htaccess

Nepostradatelným pomocníkem WordPressu je konfigurační soubor .htaccess. Jedná se o jednoduchý textový soubor obvykle v hlavním adresáři webových stránek, který umí nastavit pravidla pro přesměrování, vytvoření „hezkých URL“, zaheslování složek a další. Soubor tak ovlivňuje chod celých stránek, proto je nezbytné zacházet s ním s rozvahou, jelikož neodborný zásah do souboru může vést až k úplné nepřístupnosti stránek.

Soubor .htaccess nalezneme již ve výchozí podobě WordPressu, kde předepisuje, aby se hlavní stránka zobrazovala pouze jako www.example.com, nikoli jako www.example.com/index.php. Kromě toho nám předdefinovaný RewriteEngine v rámci souboru umožňuje automatický přepis výchozích URL adres článků na hezké URL adresy, příznivé pro SEO. .htaccess může být i častým zdrojem komplikací, při nefunkčnosti všech podstránek webu je na místě jako první zkontrolovat právě .htaccess, mohl být totiž poškozen. Řešením je uvést .htaccess do výchozí podoby.

Využití a zápis

Ukážeme si několik funkcí a jejich zápis pomocí .htaccess, které lze uplatnit nejen na WordPressu, ale na libovolných webových stránkách běžících na serveru Apache.

Nejčastějším využitím souboru je přesměrování. Přesměrovat můžeme v podstatě cokoliv kamkoliv. Názorným příkladem může být přesměrování neexistující stránky (chyba 404) na stránku s vlastním hlášením o chybě, popřípadě přesměrování návštěvníka po zadání domény bez www na doménu s www (návštěvník zadal example.com, my ho přesměrujeme na www.example.com).

Předtím než sepíšeme podmínky, je nutné aktivovat RewriteEngine za pomoci formule RewriteEngine on. Přesměrování libovolné podstránky na jinou podstránku provedeme díky předpisu RewriteRule old-page\.html new-page.html [R]. Přesměrování neexistující stránky na stránku chyba.php se provede prostřednictvím ErrorDocument 404 /chyba.php (obdobně můžeme řešit chyby 401, 403, 500). Notace pro podmínku stanovující trvalý přepis domény bez „www“ na doménu s „www“ vypadá následovně:

# example.com -> www.example.com
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule (.*) http://www.example.com/$1 [R=301]

Zabezpečení WordPressu s .htaccess

 

Protože přístup do administrace WordPressu skrze adresu /wp-admin (popř. /wp-login.php) je velmi snadný, můžeme využít .htaccess k zaheslování přístupu k přihlášení do systému – stránka po nás bude vyžadovat login a heslo, až poté se zobrazí přihlašovací okno do WordPressu, kam zadáme své přihlašovací údaje do systému (obdobně můžeme zaheslovat libovolnou jinou část webu.

Jedná se o „dvojí zabezpečení“, které provedeme zápisem:

<Files wp-login.php>
AuthType Basic
AuthName „Password Protected“
AuthUserFile /full/path/to/.htpasswd
Require valid-user
Satisfy All
</Files>

Kromě vložení tohoto zápisu do .htaccess musíme vytvořit ještě soubor .htpasswd, kam vložíme zašifrované přístupové údaje. Tuto šifru si necháme vygenerovat htpasswd generatorem. Soubor .htpasswd obsahující zašifrované přístupy nahrajeme po bok .htaccess do společného webového adresáře.

Datum sepsání: 5. 2. 2015
Zdroje: http://kb.wedos.com/htaccess/mod-rewrite.html, http://kb.wedos.com/htaccess/mod-rewrite.html