Atunci când configurați o redirecționare 301 în fișierul .htaccess, pot apărea situații în care un anumit fișier trebuie să rămână accesibil sub domeniul inițial.
Un exemplu obișnuit este un fișier de verificare a domeniului utilizat de servicii precum:
- Google Search Console
- Bing Webmaster Tools
- Facebook Business Manager
- Alte servicii de verificare a proprietății site-urilor web
În astfel de cazuri, puteți crea o excepție care să excludă fișierul selectat din regula de redirecționare.
Cuprins
Regula de redirecționare cu excluderea fișierelor
Adăugați următoarele reguli în fișierul .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/selected-file\.html$
RewriteRule ^(.*)$ https://target-domain.com/$1 [R=301,L]
Cum funcționează
Regula:
RewriteCond %{REQUEST_URI} !^/selected-file\.html$
indică Apache să nu aplice redirecționarea atunci când URL-ul solicitat corespunde cu fișierul specificat.
Toate celelalte solicitări vor fi redirecționate către domeniul țintă folosind o redirecționare permanentă (301).
Exemplu
Să presupunem că:
- Domeniul dvs. actual este:
old-domain.com
- Noul tău domeniu este:
new-domain.com
- Trebuie să păstrați fișierul de verificare:
google1234567890abcdef.html
accesibil pe domeniul inițial.
Utilizați:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/google1234567890abcdef\.html$
RewriteRule ^(.*)$ https://new-domain.com/$1 [R=301,L]
Rezultatul va fi:
https://old-domain.com/google1234567890abcdef.html
rămâne accesibil, în timp ce:
https://old-domain.com/about-us
redirecționează către:
https://new-domain.com/about-us
Excluderea mai multor fișiere
Dacă trebuie să excludeți mai mult de un fișier, puteți utiliza o condiție suplimentară:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/google1234567890abcdef\.html$
RewriteCond %{REQUEST_URI} !^/bing-site-verification\.xml$
RewriteRule ^(.*)$ https://new-domain.com/$1 [R=301,L]
Ambele fișiere vor rămâne accesibile pe domeniul original.
Unde se plasează regula
Adăugați regula de redirecționare în fișierul .htaccess situat în directorul rădăcină al site-ului dvs.
În mod implicit, acesta este:
public_html
Rezumat
Pentru a exclude un anumit fișier dintr-o redirecționare 301, adăugați o regulă RewriteCond înaintea redirecționării:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/selected-file\.html$
RewriteRule ^(.*)$ https://target-domain.com/$1 [R=301,L]
Înlocuiți:
selected-file.htmlcu numele fișierului pe care doriți să îl excludeți.target-domain.comcu domeniul de destinație pentru redirecționare.
Acest lucru permite ca fișierele de verificare și alte resurse importante să rămână accesibile, în timp ce restul traficului este redirecționat către noul domeniu.