nisfarm.ru

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 /)

nebo jeho podadresáře. Používají se k organizaci přesměrování ("přesměrování") návštěvníků z jedné domény nebo dokumentu na webový server na jiný. Každý soubor .htaccess obsahuje sadu pravidel (direktivy), podle kterých webový server přesměruje uživatele na určitou stránku.

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ě.

přesměrování htaccess

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).

přesměrování souboru htaccess

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

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řesměrování přes htaccess

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í:

  1. Najděte a otevřete soubor .http.conf. Je to v adresáři, do kterého jste nainstalovali Apache.

  2. Vytvořte záložní kopii http.conf, obnovit soubor v případě potřeby, pokud uděláte chyby.

  3. Vyhledejte řádek v souboru Moduly #LoadModule rewrite_module / mod_rewrite.so a odkomentujte ji (odeberte znak #).

  4. Najděte blok obsažený ve značkách a nahraďte jej Možnosti všeAllowOverride All.

  5. Najděte všechny odkazy "AllowOverride None" a nahradit je všude "AllowOverride All".

  6. 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

htaccess 301 stránku přesměrování

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.

nefunguje přesměrování htaccess

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

přesměrování na jinou doménu 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.

Sdílet na sociálních sítích:

Podobné
© 2021 nisfarm.ru