GNU/Linux >> Znalost Linux >  >> Linux

Průvodce pro začátečníky vytvářením přesměrování v souboru .htaccess

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 v konfiguračních souborech hlavního serveru nebo virtuálního hostitele.

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.


Linux
  1. Blokování přístupu prostřednictvím souboru .htaccess

  2. Filtrování tcpdump:Vytváření řádu z chaosu

  3. Průvodce pro začátečníky firewallem v Linuxu

  1. Jak zjistit, který proces vytváří soubor?

  2. Linux .htaccess tipy a triky

  3. xauth nevytváří soubor .Xauthority

  1. Ansible Guide:Správa souborů pomocí Ansible

  2. Průvodce pro začátečníky koukáním

  3. Vytvoření souboru CSR webového certifikátu.