Přesměrování Htaccess a konfigurace
Soubory .htaccess mohou být umístěny v kořenovém adresáři webu (například, / home / user / sitename /)
Obsah
- Vytvoření souboru .htaccess
- Stahování souboru .htaccess na server
- Kontrola práce .htaccess
- Trochu o prioritách přesměrování .htaccess
- Přesměrování .htaccess: základní pohledy
- 301: průběžné přesměrování
- 302: dočasné přesměrování
- Příklady scénářů přesměrování
- Chyba 404 nebyla nalezena
- Nekonečná adresa url, časový limit nebo smyčka
- Jak provést přesměrování bez .htaccess
Mnoho systémů pro správu obsahu přijímá nastavení přesměrování stránek z .htaccess. Soubory vytvořené systémem CMS můžete upravit zadáním nových direktiv přesměrování nebo vytvořením vlastních souborů .htaccess ručně.
Vytvoření souboru .htaccess
Prvním krokem při nastavování přesměrování je Htaccess, ve skutečnosti vytvoření samotného souboru. Váš .htaccess by měl být jednoduchý textový soubor. To znamená, že je třeba jej vytvořit v programu pro úpravy textu, který může generovat soubory prostého textu (.txt).
- V počítači se systémem Windows můžete používat program Poznámkový blok, který je jedním z vestavěných standardních programů.
- Na Macu můžete použít TextEdit. Nejprve je třeba v nabídce TextEdit otevřít nabídku "Nastavení" a v sekci "Nový dokument" zvolit "Jednoduchý text". Poté můžete spustit proces vytváření nového textového dokumentu TextEdit pro váš soubor .htaccess.
- Na Linuxu můžete použít libovolný z mnoha textových editorů, které jsou k dispozici pro vaši distribuci - jak konzolu (vi, nano), tak grafické (například gedit).
Při ukládání dokumentu nezapomeňte název htaccess.txt. Pokud jej uložíte jednoduše jako .htaccess, váš počítač skrývá soubor. Je to proto, že soubory začínající bodem se považují za systémové soubory.
Stahování souboru .htaccess na server
Pro správné přesměrování pomocí .htaccess musí být soubor stažen přesně na adresář na serveru, pro který chcete nastavit přesměrování. Obvykle je to váš adresář souborů HTML (/var/www/vhosts/example.com/httpdocs/), i když jej můžete nahrát do libovolného podadresáře na vašem serveru.
Jakmile je soubor načten, přejmenujte jej přímo na .htaccess.
V tomto okamžiku může být soubor FTP klientovi neviditelný, protože nyní má formát systémového souboru. Mnoho FTP klienty vám umožní prohlížet skryté soubory a složky - doporučujeme povolit tuto funkci. Pokyny k jeho zapnutí naleznete v dokumentaci klienta.
Kontrola práce .htaccess
Nejjednodušší způsob, jak zkontrolovat, zda váš webový server zpracuje váš soubor .htaccess, je jeho úmyslné poškození.
Upravte soubor .htaccess tak, aby první řádek začínal slovem Test:
Test
# Nastavení domovské stránky
DirectoryIndex page.html page.txt ...
Nyní, pokud restartujete hlavní stránku vašich stránek, uvidíte následující chybu (na fotografii níže).
Pokud k této chybě dojde, je to ve skutečnosti dobré - server zpracovává váš soubor a přečte od něj direktivy přesměrování. Pokud tomu tak není, ujistěte se, že soubor a adresář, ve kterém je umístěn, jsou čitelné a v případě potřeby změňte přístupová práva.
Trochu o prioritách přesměrování .htaccess
Pravidla .htaccess jsou rekurzivní. To znamená, že směrnice jsou zapsány v souboru /home/user/sitename_html/.htaccess bude použito k tomu katalog, a jeho podřízené složky - s výjimkou případů, kdy je konkrétní pravidlo zrušeno pomocí směrnice v souboru .htaccess umístěném v podřízeném adresáři.
Nastavení přesměrování přes .htaccess, které daný souborem na vyšší úrovni, tak přepíše nastavení souborů v nižších úrovních. Například, pokud chcete povolit přesměrování pro velkou část svého webu, ale to vypnout pro určité složky, můžete vytvořit samostatnou .htaccess s odpovídajícími nastaveními a stáhnout pouze do tohoto adresáře.
Podobně .htaccess souborů nízkoúrovňové přepsat PHP nastavení v php.ini soubory vhost.conf a na vyšších úrovních, pokud přepsání není výslovně zakázáno pro tyto soubory.
Nakonec, pořadí pravidel přesměrování .htaccess v souboru může mít hodnotu pro určité typy direktiv. Seznam pravidel se zpracovává postupně od počátku až po koncové pokyny na začátku souboru.
Přesměrování .htaccess: základní pohledy
Existují různé typy přesměrování, které lze provádět prostřednictvím souborů .htaccess. Budeme je analyzovat a zvážit každý typ, než se učíme, jak je používat.
301: průběžné přesměrování
Toto je nejběžnější typ přesměrování a nejpravděpodobněji ten, který nejčastěji nastavujete. V souboru .htaccess 301 přesměrování stránky označuje, že stará adresa URL (přesměrovaná adresa URL) již není použita.
302: Dočasné přesměrování
Přesměrování 302 znamená, že stará adresa URL stránky je dočasně deaktivována, ale bude brzy obnovena. Pro Apache je toto pravidlo přesměrování používáno ve výchozím nastavení.
Před konfigurováním přesměrování .htaccess tedy musíte zjistit, zda je přesměrování trvalé nebo dočasné. U příkladů v tomto článku použijeme přesměrování 301.
Příklady scénářů přesměrování
Níže jsou uvedeny nejběžnější příklady přesměrování .htaccess.
Chcete-li použít kterýkoli z nich, musíte otevřít soubor .htaccess, který jste vytvořili, pomocí libovolného textového editoru a přidat do něj požadovaný vzorek kódu.
Aby mohl kód fungovat, musí být na webovém serveru Apache povolen přepisovatelný modul (mod_rewrite). Chcete-li to provést, musíte provést řadu akcí v závislosti na vašem operačním systému.
V systému Windows proveďte následující:
Najděte a otevřete soubor .http.conf. Je to v adresáři, do kterého jste nainstalovali Apache.
Vytvořte záložní kopii http.conf, obnovit soubor v případě potřeby, pokud uděláte chyby.
Vyhledejte řádek v souboru Moduly #LoadModule rewrite_module / mod_rewrite.so a odkomentujte ji (odeberte znak #).
Najděte blok obsažený ve značkách
a nahraďte jej .Možnosti všeAllowOverride All Najděte všechny odkazy "AllowOverride None" a nahradit je všude "AllowOverride All".
Restartujte webový server a prohlížeč.
Na Linuxu stačí spustit v terminálu:
sudo a2enmod přepsat
Tento příkaz spustí modul nebo vás upozorní, že modul již běží. Chcete-li nové změny aktivovat, restartujte aplikaci Apache příkazem v terminálu:
sudo služba apache2 restart
Nyní můžeme začít editovat soubor .htaccess a naučit se nejběžnější direktivy přesměrování.
1. Přesměrování z jedné stránky na jinou v .htaccess:
Přesměrování 301 /retiredpage.html https://example.com/newpage.html
2. Přesměrování složek (s veškerým obsahem):
RedirectMatch 301 ^ / olddir / https://yourdomain.com/newdir/
3. Přesuňte stránku v .htaccess s odstraněním WWW:
RewriteEngine Zapnuto
RewriteCond% {HTTP_HOST} ^ www .záznám .com $ [NC]
RewriteRule ^ (. *) $ Http://sitename.com/$1 [L, R = 301]
4. Přesměrování s přidáním WWW:
RewriteEngine Zapnuto
RewriteCond% {HTTP_HOST}! ^ Www .samplehost .com $ [NC]
RewriteRule ^ (. *) $ Http://samplehost.com/$1 [L, R = 301]
5. Přesměrování na jinou doménu v .htaccess (úplné přesunutí webu):
RedirectMatch 301 ^ (. *) $ Http://yoursite.com
6 .htaccess - přesměrování souborů HTML do souborů PHP:
RedirectMatch 301 (. *) . Html $ http: //examplesite.com$1.php
7. Přesměrování stránek s přídavkem protokolu HTTPS:
RewriteCond% {HTTPS} vypnuto
RewriteRule (. *) Https: //% {SERVER_NAME} / $ 1 [R = permanentní, L]
8. Nahraďte všechna velká písmena do adresy URL malými písmeny:
RewriteMap lc int: tolower
Tento úryvek kódu musí být přidán do httpd.conf vašeho webového serveru. Poté musíte otevřít soubor .htaccess a přidat:
RewriteEngine Zapnuto
RewriteCond% {REQUEST_URI} [A-Z]
RewriteRule. $ {lc:% {REQUEST_URI}} [R = 301, L]
9. Používání regulárních výrazů. Pravidla přesměrování často obsahují znaky, které jsou přidávány do regulárních výrazů. Díky tomu server přesně ví, co chcete změnit v adrese URL. Pravidelné výrazy však mohou být na první pohled obtížné pochopit. Zde jsou některé běžné prvky, které můžete vidět a používat v jejich pravidlech pro přepis URL, a konkrétní příklady jejich použití:
^: začátek nahrazeného řetězce;
$: konec nahrazeného řetězce.
Příklad: regulární výraz ^ folder1 $ Poskytuje signál k nalezení a nahrazení textu «Folder1» uvnitř propojení.
. : libovolný znak, který není prostor (například, a, B, 3) -
*: označuje, že předchozí text lze opakovat několikrát;
Příklad: regulární výraz ^ uploady. * $ umožňuje nahradit text «Uploads2009»,«Uploads2010» a tak dále;
Pravidelný výraz ^. * $ znamená "najít něco". Je to užitečné, pokud nevíte, že uživatel může zadat URL v textu.
(): vyberte část textu, která by měla být v pravidle použita jako hodnota $ 1. To je nutné například při zpracovávání požadavků na konkrétní soubory, které musí být stejné pro starou i novou verzi URL.
Chyba 404 nebyla nalezena
Někdy se při nastavování přesměrování vyskytují chyby. Zvažme hlavní důvody, proč přesměrování .htaccess nemusí fungovat.
Chybnou chybou je chyba 404 nenalezena, ke které dochází při přesměrování. V tomto případě je třeba pečlivě prozkoumat URL vytvořenou v adresním řádku. Existuje soubor v novém umístění na serveru určeném pravidlem přesměrování? Možná budete muset zkopírovat soubory ze starého umístění do nového umístění nebo rozšířit pravidlo přesměrování tak, aby v případě, že neexistuje žádný soubor, který byste potřebovali, byl na web poslán odkaz na hlavní stránku webu.
Je-li adresa URL jednoduše nesprávná (například, https://example.com/folder1//file.html - poznamenejte si dvě lomítka), musíte upravit syntaxi pravidla přesměrování.
Nekonečná adresa URL, časový limit nebo smyčka
Když se objeví na přesměrování URL-adresa je příliš dlouhá, příliš dlouhé stránka nenačte, nebo Váš prohlížeč dává chybovou zprávu přesměrování pravděpodobně odklonit některé z pravidel v rozporu s sebou.
Je třeba zkontrolovat celý soubor .htaccess pro pravidla přesměrování, které se mohou shodovat s dalšími pravidly. Také je třeba zkontrolovat soubory .htaccess v podadresářích. Všimněte si, že FTP nezobrazí soubory .htaccess, pokud nepovolujte možnost zobrazit skryté soubory a složky.
Kromě toho můžete zahrnout přesměrování do HTML a PHP stránek. Zkontrolujte stránku, se kterou se problém vyskytuje u interních přesměrování.
Přidání [L] poté, co pravidlo přesměrování může v některých případech pomoci, protože tento příznak pověřuje server, aby zastavil pokus o přesměrování adresy URL po uplatnění pravidla.
Jak provést přesměrování bez .htaccess
Na závěr se podíváme, jak přesměrovat URL bez úpravy souboru .htaccess pomocí hostitele virtuálního serveru Apache. Mimochodem, tato metoda je jednodušší než kompilace pravidel přesměrování pro stránky v .htaccess.
Otevřete konfigurační soubor vhost (httpd.conf) pomocí textového editoru, který se obvykle nachází v adresáři adresář / etc / apache2 / sites / sitename.
Vybraný fragment vzorového souboru demonstruje přesměrování:
ServerName mysite.com
ServerAlias mysite.com
Přesměrování / https://mysite.com
Výše uvedená konfigurace přesměruje všechny žádosti o doménu bez subdomény
Chcete-li přesměrovat všechny požadavky na doménu s WWW subdomény, změňte konfiguraci podle následujícího obrázku.
Název_serveru anywebsite.com
ServerAlias anywebsite.com
Redirect / https://anywebsite.com
Restartujte aplikaci Apache a začne správně přesměrovat stránky. Výše uvedená metoda je nejjednodušší a je jednodušší implementovat než přesměrování z jedné stránky do druhé v htaccess.
- Volný certifikát HTTPS: pokyn k přijetí
- Jak vytvořit připojení HTTPS? Jaký je rozdíl mezi weby na HTTPS nebo HTTP?
- Jak vytvořit odkazy na CNC: podrobné pokyny
- Soubor SQL. Formát souboru SQL: popis přípony
- Jak provést přesměrování z http na https a proč je potřeba?
- Výstup chyb v PHP
- Co je odkaz na internetu a v programu `Word`?
- Co je chyba 500 interních serverů? Co kdybyste viděli nápis 500 Interní chybový server (YouTube)?
- Hosts - co by tam mělo být? Hosts File
- Chyba interní chyby serveru: co je to a jak s ním vypořádat
- Jak konfigurovat přesměrování 301 prostřednictvím .htaccess. Správný postoj jako přesměrování 301 v…
- Přesměrování HTML: kontrola toku návštěvníků
- Htaccess (kódování): nastavení, příklady použití
- 403 Zakázáno Nginx: co je a jak to opravit?
- Instalace a konfigurace phpMyAdmin: podrobné pokyny a doporučení
- ERR_TOO_MANY_REDIRECTS: jak opravit chybu
- Lmhosts.sam - co je tento soubor?
- Localhost phpMyAdmin Nástroje: popis, chyby
- Jak mohu přestat přistupovat k webu?
- Změny hostitelského souboru. Jak vážné je to?
- Jak přenést web do jiného hostitelského serveru se systémem CMS Joomla.