Redirecționarea Htaccess și configurarea acestuia

Fișierele .htaccess pot fi localizate în directorul rădăcină al site-ului (de exemplu, / home / utilizator / sitename /)

sau subdirectoarele sale. Acestea sunt folosite pentru a organiza redirecționarea ("redirecționarea") vizitatorilor dintr-un domeniu sau un document de pe serverul dvs. web către altul. Fiecare fișier .htaccess conține un set de reguli (directive), conform cărora serverul web redirecționează utilizatorul către o anumită pagină.

Multe sisteme de gestionare a conținutului iau setările de redirecționare a site-ului din .htaccess. Puteți edita fișierele create de CMS prin introducerea de directive de redirecționare noi sau să creați manual fișierele .htaccess.

redirecționați htaccess

Crearea unui fișier .htaccess

Primul pas în stabilirea redirecționării. Htaccess este, de fapt, crearea fișierului în sine. Htaccess-ul dvs. ar trebui să fie un fișier text simplu. Aceasta înseamnă că trebuie să-l creați într-un program de editare a textului care poate genera fișiere text (.txt).

  • Pe un computer Windows, aveți posibilitatea să utilizați Notepad, unul dintre programele standard încorporate.
  • Pe un Mac, puteți utiliza TextEdit. Mai întâi trebuie să deschideți meniul "Setări" din TextEdit și să selectați "Simplu text" din secțiunea "Document nou". După aceasta, puteți începe procesul de creare a unui text text TextEdit pentru fișierul .htaccess.
  • Pe Linux, puteți utiliza oricare dintre editorii de text disponibili pentru distribuția dvs. - atât consola (vi, nano), cât și grafica (de exemplu, gedit).

Când salvați un document, asigurați-vă că îl denumiți htaccess.txt. Dacă îl salvați pur și simplu ca .htaccess, computerul dvs. va ascunde fișierul. Acest lucru se datorează faptului că fișierele care încep cu un punct sunt considerate fișiere de sistem.

Descărcarea fișierului .htaccess pe server

Pentru o redirecționare corectă prin .htaccess, fișierul trebuie să fie descărcat exact în directorul de pe serverul pentru care doriți să setați setările de redirecționare. De obicei, acesta este directorul dvs. de fișiere HTML (/var/www/vhosts/example.com/httpdocs/), deși îl puteți încărca în orice subdirector de pe serverul dvs.

Odată ce fișierul este încărcat, redenumiți-l direct în .htaccess.

În acest moment, fișierul poate deveni invizibil pentru clientul FTP, deoarece are acum un format de fișier de sistem. multe Clienți FTP vă permit să vizualizați fișiere și foldere ascunse - este recomandat să activați această caracteristică. Pentru instrucțiuni despre cum să îl porniți, consultați documentația clientului.

Verificarea lucrării .htaccess

Cea mai ușoară modalitate de a verifica dacă serverul dvs. web procesează fișierul .htaccess este deteriorarea sa intenționată.

Editați fișierul .htaccess astfel încât prima linie să înceapă cu cuvântul Test:

test

# Setați pagina de pornire

DirectoryIndex page.html page.txt ...

Acum, dacă reporniți pagina principală a site-ului dvs., veți vedea următoarea eroare (în fotografia de mai jos).

htaccess fișier redirecționare

Dacă apare această eroare, aceasta este, de fapt, bună - atunci serverul procesează fișierul dvs. și citește directivele de redirecționare din acesta. Dacă nu, asigurați-vă că fișierul și directorul în care este localizat sunt citite și, dacă este necesar, modificați drepturile de acces.

Un pic despre prioritățile redirecției .htaccess

Regulile .htaccess sunt recursive. Adică directivele scrise într-un dosar /home/user/sitename_html/.htaccess vor fi aplicate în acest sens director și la dosarele copilului său - cu excepția cazurilor în care o anumită regulă este anulată utilizând o directivă în fișierul .htaccess aflat în directorul copil.

Astfel, setările de redirecționare prin .htaccess, date de fișier la un nivel superior, sunt suprascrise de setările fișierelor de la nivelurile inferioare. De exemplu, dacă doriți să activați redirecționarea pentru cea mai mare parte a site-ului dvs., dar dezactivați-l pentru un anumit director, puteți crea un fișier .htaccess separat, cu setările corespunzătoare și încărcați-l numai în acel director.

În mod similar, fișierele .htaccess de nivel inferior înlocuiesc setările PHP din fișierele vhost.conf și php.ini la niveluri superioare, cu excepția cazului în care suprascrierea este explicit interzisă pentru aceste fișiere.

În cele din urmă, ordinea regulilor de redirecționare .htaccess într-un fișier poate avea o valoare pentru anumite tipuri de directive. Lista de reguli este procesată secvențial de la început la directivele finale de la începutul fișierului va fi executat mai întâi.

redirecționați htaccess

Redirecționare .htaccess: vederi de bază

Există diferite tipuri de redirecționări care pot fi efectuate prin intermediul fișierelor .htaccess. Le vom analiza și vom examina fiecare tip înainte de a învăța cum să le folosim.

301: redirecționarea continuă

Acesta este cel mai frecvent tip de redirecționare și, cel mai probabil, cel pe care îl veți configura cel mai adesea. În fișierul .htaccess 301, redirecționarea paginii indică faptul că vechea adresă URL (URL redirecționată) nu mai este utilizată.

302: Redirecționare temporară

Redirecționarea 302 indică faptul că vechea adresă URL a paginii este dezactivată temporar, dar va fi restaurată în curând. Pentru Apache, această regulă de redirecționare este utilizată implicit.

Astfel, înainte de a configura redirecționarea .htaccess, trebuie să stabiliți dacă redirecționarea este permanentă sau temporară. Pentru exemplele din acest articol, vom folosi redirecționarea 301.

redirecționați prin htaccess

Exemple de scenarii de redirecționare

Mai jos sunt exemplele cele mai frecvente de redirecționare .htaccess.

Pentru a utiliza oricare dintre ele, trebuie să deschideți fișierul .htaccess creat de dvs. cu orice editor de text și să adăugați proba de cod necesară la acesta.

Pentru ca codul să funcționeze, modulul de re-scriere (mod_rewrite) trebuie să fie activat pe serverul web Apache. Pentru a face acest lucru, trebuie să efectuați o serie de acțiuni în funcție de sistemul dvs. de operare.

Pe Windows, procedați în felul următor:

  1. Găsiți și deschideți un fișier .http.conf. Acesta este în directorul în care ați instalat Apache.

  2. Creați o copie de rezervă http.conf, pentru a restabili fișierul dacă este necesar, dacă faceți greșeli.

  3. Găsiți o linie în fișier Modulele #LoadModule rewrite_module / mod_rewrite.so și dezinstalați-l (eliminați semnul #).

  4. Găsiți blocul inclus în etichete și înlocuiți-l cu Opțiuni ToateAllowOverride All.

  5. Găsiți toate referințele "AllowOverride None" și înlocuiți-le peste tot cu "AllowOverride All".

  6. Reporniți serverul web și browserul dvs.

Pe Linux este suficient să se execute în terminal:

sudo a2enmod rescrie

Această comandă va lansa modulul sau vă va anunța că modulul este deja în execuție. Pentru a activa noile modificări, reporniți Apache cu comanda din terminal:

serviciul sudo apache2 reporniți

Pagina de redirecționare htaccess 301

Acum putem începe editarea fișierului .htaccess și învățarea celor mai comune directive de redirecționare.

1. Redirecționarea de la o pagină la alta în .htaccess:

Redirecționați 301 /retiredpage.html https://example.com/newpage.html

2. Redirecționarea folderelor (cu tot conținutul):

RedirectMatch 301 ^ / olddir / https://yourdomain.com/newdir/

3. Redirecționați pagina în .htaccess cu eliminarea WWW:

RewriteEngine activată

RewriteCond% {HTTP_HOST} ^ www .sitename .com $ [NC]

RewriteRule ^ (. *) $ Http://sitename.com/$1 [L, R = 301]

4. Redirecționarea cu adăugarea de WWW:

RewriteEngine activată



RewriteCond% {HTTP_HOST}! ^ Www .samplehost .com $ [NC]

RewriteRule ^ (. *) $ Http://samplehost.com/$1 [L, R = 301]

5. Redirecționați către un alt domeniu din .htaccess (deplasarea în întregime a site-ului):

RedirectMatch 301 ^ (. *) $ Http://yoursite.com

6 .htaccess-redirecționarea fișierelor HTML în fișierele PHP:

RedirectMatch 301 (. *) . Html $ http: //examplesite.com$1.php

7. Redirecționarea paginilor cu adăugarea HTTPS:

RewriteCond% {HTTPS} oprit

RewriteRule (. *) Https: //% {SERVER_NAME} / $ 1 [R = permanent, L]

8. Înlocuiți toate literele majuscule din URL cu litere mici:

RewriteMap lc int: tolower

Acest fragment de cod trebuie adăugat la httpd.conf al serverului dvs. web. După aceasta, trebuie să deschideți fișierul .htaccess și să adăugați:

RewriteEngine activată

RewriteCond% {REQUEST_URI} [A-Z]

RewriteRule. $ {lc:% {REQUEST_URI}} [R = 301, L]

9. Folosirea expresiilor regulate. Regulile de redirecționare conțin adesea caractere adăugate expresiilor regulate. Datorită acestui fapt, serverul știe exact ce doriți să modificați în URL. Cu toate acestea, expresiile regulate pot fi greu de înțeles dintr-o privire. Iată câteva elemente comune pe care le puteți vedea și utiliza în regulile lor de rescriere a adreselor URL, precum și exemple specifice de utilizare a acestora:

  • ^: începutul șirului înlocuit;

  • $: sfârșitul șirului înlocuit.

exemplu: expresie regulată ^ folder1 $ Oferă un semnal pentru a găsi și înlocui textul «Folder1» în interiorul link-ului.

  • . : orice caracter care nu este un spațiu (de exemplu, a, B, 3) -

  • *: indică faptul că textul precedent poate fi repetat de mai multe ori;

exemplu: expresie regulată ^ încărcări. * $ vă permite să înlocuiți textul «Uploads2009»,«Uploads2010» și așa mai departe;

Expresie regulată ^. * $ înseamnă "a găsi ceva". Este util în cazul în care nu știți că utilizatorul poate introduce URL-ul în text.

  • (): selectați o piesă de text care ar trebui folosită în regulă ca valoare de 1 $. Acest lucru este necesar, de exemplu, pentru a gestiona cererile pentru anumite fișiere, care trebuie să fie aceleași pentru versiunile vechi și noi ale adresei URL.

nu funcționează redirecționarea htaccess

Eroarea 404 nu a fost găsită

Uneori se întâmplă să apară erori la configurarea redirecționării. Să luăm în considerare principalele motive pentru care redirecționarea .htaccess ar putea să nu funcționeze.

O eroare obișnuită este eroarea 404 Not Found care apare atunci când redirecționați. În acest caz, trebuie să examinați cu atenție adresa URL formată în bara de adrese. Există un fișier în noua locație de pe server specificată de regula de redirecționare? Este posibil să fie necesar să copiați fișierele de pe vechea dvs. locație într-o locație nouă sau să extindeți regula de redirecționare astfel încât, dacă nu există niciun fișier de care aveți nevoie, a fost trimis un link către pagina principală a site-ului.

Dacă adresa URL este pur și simplu incorectă (de exemplu, https://example.com/folder1//file.html - notează două șuble), trebuie să revizuiți sintaxa regulii de redirecționare.

Adresă URL infinită, timeout sau buclă

Dacă adresa URL generată în timpul redirecționării este prea lungă sau pagina este prea lungă pentru încărcare sau dacă browserul dvs. oferă un mesaj de eroare de redirecționare, este probabil ca mai multe reguli de redirecționare să fie în conflict unul cu celălalt.

Este necesar să verificați întregul fișier .htaccess pentru regulile de redirecționare, care pot coincide cu alte reguli. De asemenea, este posibil să verificați fișierele .htaccess din subdirectoare. Rețineți că FTP nu va afișa fișiere .htaccess decât dacă activați opțiunea de a vizualiza fișiere și foldere ascunse.

În plus, puteți include redirecționări în paginile HTML și PHP. Verificați pagina cu care apare problema pentru redirecționările interne.

plus [L] după ce regula de redirecționare poate ajuta în unele cazuri, deoarece acest stegulează comanda serverului să nu mai încerce să redirecționeze adresa URL după aplicarea regulii.

Cum se face o redirecționare fără .htaccess

redirecționați către un alt domeniu htaccess

În concluzie, să examinăm modul de redirecționare a adresei URL fără editarea fișierului .htaccess, utilizând gazda serverului virtual Apache. Apropo, această metodă este mai ușoară decât compilarea regulilor de redirecționare pentru paginile din .htaccess.

Deschideți fișierul de configurare vhost (httpd.conf) cu editorul de text, care este de obicei localizat în directorul / etc / apache2 / sites / sitename.

Fragmentul selectat din fișierul de probă demonstrează redirecționarea:

Numele serverului mysite.com

ServerAlias ​​mysite.com

Redirect / https://mysite.com

Configurația de mai sus redirecționează toate solicitările de domeniu fără un subdomeniu

Pentru a redirecționa toate solicitările către un domeniu cu un subdomeniu WWW, schimbați configurația după cum se arată mai jos.

Numele serverului anywebsite.com

ServerAlias ​​anywebsite.com

Redirect / https://anywebsite.com

Reporniți Apache și site-ul va începe să redirecționeze corect. Metoda de mai sus este cea mai simplă și este mai ușor de implementat decât o redirecționare de la o pagină la alta în htaccess.

Distribuiți pe rețelele sociale:

înrudit
Cum se fac legăturile CNC: instrucțiuni pas cu pasCum se fac legăturile CNC: instrucțiuni pas cu pas
Fișier SQL. Formatul de fișier SQL: descrierea extensieiFișier SQL. Formatul de fișier SQL: descrierea extensiei
Cum se face o redirecționare de la http la https și de ce este necesar?Cum se face o redirecționare de la http la https și de ce este necesar?
Rezultatul erorilor în PHPRezultatul erorilor în PHP
Cum să redirecționați către un alt număr. Redirecționarea către un alt număr pe MTS,…Cum să redirecționați către un alt număr. Redirecționarea către un alt număr pe MTS,…
Cum să editați un fișier PDF în Adobe Reader, `Photoshop` sau onlineCum să editați un fișier PDF în Adobe Reader, `Photoshop` sau online
Care este eroarea de 500 de erori interne? Ce se întâmplă dacă ați văzut inscripția 500 Server de…Care este eroarea de 500 de erori interne? Ce se întâmplă dacă ați văzut inscripția 500 Server de…
Gazdele - ce ar trebui să fie acolo? Gazdă fișierGazdele - ce ar trebui să fie acolo? Gazdă fișier
Eroare la eroarea internă a serverului: ceea ce este și cum să rezolvați problemaEroare la eroarea internă a serverului: ceea ce este și cum să rezolvați problema
Cum se configurează redirecționarea 301 prin .htaccess. Atitudinea corectă ca o redirecționare 301…Cum se configurează redirecționarea 301 prin .htaccess. Atitudinea corectă ca o redirecționare 301…
» » Redirecționarea Htaccess și configurarea acestuia