Cítili jste někdy potřebu změnit konfiguraci svého webu běžícího na webovém serveru Apache, aniž byste měli root přístup ke konfiguračním souborům serveru (httpd.conf
)? To je to, co .htaccess
soubor je pro.
.htaccess
poskytuje způsob, jak provádět změny konfigurace vašeho webu na základě jednotlivých adresářů. Soubor je vytvořen ve specifickém adresáři, který obsahuje jednu nebo více konfiguračních direktiv, které jsou aplikovány na tento adresář a jeho podadresáře. Ve sdíleném hostingu budete muset použít .htaccess
soubor pro provedení změn konfigurace na vašem serveru.
[ Mohlo by se vám také líbit: 6 dovedností systémového administrátora, které weboví vývojáři potřebují ]
Běžná použití souboru .htaccess
.htaccess
soubor má několik případů použití. Mezi nejčastější příklady patří:
- Přesměrování pro určité adresy URL
- Načíst vlastní chybové stránky, například 404 stránek
- Vynutit na svém webu HTTPS namísto HTTP
- Povolte nebo odepřete přístup konkrétním IP adresám na váš web
- Ochrana určitých adresářů na serveru heslem
Kdy nepoužívat .htaccess?
.htaccess
soubor se běžně používá, když nemáte přístup k hlavnímu konfiguračnímu souboru serveru httpd.conf
nebo konfiguraci virtuálního hostitele, což se stane pouze v případě, že jste si zakoupili sdílený hosting. Všechny výše uvedené případy použití můžete dosáhnout úpravou konfiguračních souborů hlavního serveru (např. httpd.conf
) nebo konfigurační soubory virtuálního hostitele, takže byste neměli používat .htaccess
když máte přístup k těmto souborům. Jakákoli konfigurace, kterou potřebujete vložit do .htaccess
soubor lze stejně efektivně přidat do
Důvody, proč se vyhnout používání .htaccess
Existují dva důvody, proč se vyhnout použití .htaccess
soubory. Pojďme se na ně podívat blíže.
První :Výkon – při AllowOverride je nastaven tak, aby umožňoval použití .htaccess
soubory, httpd
bude hledat .htaccess
soubory v každém adresáři počínaje nadřazeným adresářem. To bude mít dopad na výkon, ať už jej používáte nebo ne. .htaccess
soubor se načte pokaždé, když je z adresáře požadován dokument.
Chcete-li mít úplný přehled o direktivách, které musí použít, httpd
bude vždy hledat .htaccess
soubory začínající nadřazeným adresářem, dokud nedosáhne cílového podadresáře. Pokud je soubor požadován z adresáře /public_html/test_web/content
, httpd
musí hledat následující soubory:
/.htaccess
/public_html/.htaccess
/public_html/test_web/.htaccess
/public_html/test_web/content/.htaccess
Byly tedy provedeny čtyři přístupy k souborovému systému pro každý přístup k souboru z obsahu podadresáře, i když soubor není přítomen.
Za druhé :Zabezpečení – uděluje uživatelům oprávnění provádět změny v .htaccess
soubory jim dává plnou kontrolu nad konfigurací serveru konkrétní webové stránky nebo virtuálního hostitele. Jakákoli direktiva v souboru .htaccess
soubor má stejný účinek jako kterýkoli soubor umístěný v httpd
samotný konfigurační soubor a změny provedené v tomto souboru se projeví okamžitě bez nutnosti restartovat server. To se může stát riskantním z hlediska zabezpečení webového serveru a webové stránky.
Povolte soubor .htaccess
Chcete-li povolit .htaccess
musíte mít na serveru oprávnění sudo/root.
Otevřete httpd
konfigurační soubor vašeho webu:
/etc/httpd/conf/test.conf
Měli byste přidat následující konfigurační direktivu do souboru virtuálního hostitele serveru, abyste povolili .htaccess
soubor v DocumentRoot adresář. Pokud nejsou přidány následující řádky, .htaccess
soubor nebude fungovat:
</VirtualHost>
<Directory /var/www/test.com/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
V případě sdíleného hostingu to již poskytovatelé hostingových služeb umožňují. Vše, co musíte udělat, je vytvořit .htaccess
soubor v public_html
adresář, ke kterému vám poskytovatel služeb poskytl přístup a do kterého budete nahrávat soubory svých webových stránek.
Adresy URL přesměrování
Pokud je vaším cílem jednoduše přesměrovat jednu adresu URL na jinou, Přesměrování směrnice je nejlepší možností, kterou můžete použít. Kdykoli přijde požadavek od klienta na staré adrese URL, předá jej na novou adresu URL v novém umístění.
Pokud chcete provést úplné přesměrování na jinou doménu, můžete nastavit následující:
# Redirect to a different domain
Redirect 301 "/service" "https://newdomain.com/service"
Pokud chcete pouze přesměrovat starou adresu URL na novou adresu URL na stejném hostiteli:
# Redirect to a URL on the same domain or host
Redirect 301 "/old_url.html" "/new_url.html"
Load a custom 404 Error page
Pro lepší uživatelský dojem načtěte vlastní chybovou stránku, když některý z odkazů na vašem webu ukazuje na nesprávné umístění nebo když byl dokument smazán.
Chcete-li vytvořit vlastní stránku 404, jednoduše vytvořte webovou stránku, která bude fungovat jako stránka 404, a poté přidejte následující kód do .htaccess
soubor:
ErrorDocument 404 /error/pagenotfound.html
Měli byste změnit /error/pagenotfound.html
do umístění vaší stránky 404.
Vynutit pro svůj web použití HTTPS místo HTTP
Pokud chcete, aby vaše webové stránky používaly HTTPS, musíte použít RewriteEngine modulu v .htaccess
soubor. Nejprve musíte zapnout RewriteEngine modulu v .htaccess
soubor a poté zadejte podmínky, které chcete zkontrolovat. Pokud jsou tyto podmínky splněny, použijete na ně pravidla.
Následující fragment kódu přepíše všechny požadavky na HTTPS:
# Turn on the rewrite engine
RewriteEngine On
# Force HTTPS and WWW
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.test-website.com/$1 [R=301,L]
Pojďme si projít každý řádek.
RewriteEngine je zapnutý zapne RewriteEngine modul. To je vyžadováno; jinak nebudou podmínky a pravidla fungovat.
První podmínka kontroluje, zda www
je zadáno. [NEBO, NC] znamená no case , což znamená, že i když zadaná adresa URL obsahuje kombinaci velkých a malých písmen.
Dále zkontroluje, zda již uživatel zadal protokol HTTPS. %{https} sleva znamená, že nebyl použit protokol HTTPS.
Když RewriteCond je spokojen, používáme RewriteRule pro přesměrování URL na HTTPS. Všimněte si, že v tomto případě budou všechny adresy URL přesměrovány na HTTPS, kdykoli dojde k nějakému požadavku.
[ Bezplatný průvodce od společnosti Red Hat:5 kroků k automatizaci vašeho podnikání. ]
Sbalit
Majitelé webových stránek často používají .htaccess
k ovládání chování svých webových stránek. V tomto článku jsme probrali základy .htaccess
soubor a některé běžné případy použití na většině webových stránek.