Mod_Rewrite – nurodo, kaip tinklalapiai ir URL rodomi lankytojams.
Norėtume atkreipti jūsų dėmesį į Mod_Rewrite taisyklių naudojimą .htaccess faile.
Prieš kurdami peradresavimą, turėtumėte pasirinkti peradresavimo tipą, kuris jums būtų tinkamesnis:
Nuolatinio peradresavimo būsenos kodas yra 301 ir, skirtingai nei laikinasis, jis yra talpykloje naršyklės atmintyje. Tai reiškia, kad puslapis buvo perkeltas ir prašo visų į puslapį ateinančių paieškos variklių ir vartotojo agentų atnaujinti URL savo duomenų bazėje. Tai yra labiausiai paplitęs peradresavimo tipas.
Laikinas peradresavimas reiškia, kad puslapis naršyklei siunčia būsenos kodą 302. Kodas 302 nurodo naršyklei nelaikyti šio peradresavimo talpykloje į išsaugotus duomenis. Jis nukreips lankytoją arba paieškos variklį, tačiau paieškos variklis ir toliau indeksuos pradinį puslapį. Tai rekomenduojamas peradresavimo tipas, nebent esate visiškai tikri, kad niekada jo nepakeisite.
Dažniausiai pasitaikančių ir naudingiausių peradresavimų, kuriuos galima nustatyti per .htaccess failą, sąrašą rasite žemiau (pavyzdžiuose nurodyti domenai turėtų būti pakeisti savo):
Nuolatinis peradresavimas iš example.com į domain.com
„RewriteEngine“ On
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ "http\:\/\/domain\.com/$1" [R=301,L]
Laikinas peradresavimas iš example.com į domain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ "http\:\/\/domain\.com\/" [R=302,L]
PASTABA: toliau pateikiami nuolatinių peradresavimų pavyzdžiai. Laikiną galima apibrėžti kodo pabaigoje (kur reikia) pakeičiant [R=301,L] į [R=302,L].
Peradresuoti iš example.com/subfolder į domain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^subfolder$ "http\:\/\/domain\.com\/" [R=301,L]
Peradresuoti iš HTTP į HTTPS
tam tikram domenui, example.com: RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* https://example.com/%{REQUEST_URI} [R,L]
arba RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
Peradresuoti iš ne WWW į WWW
bet kuriam domenui .htaccess įsigalioja:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
tam tikram domenui, example.com:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
Peradresuoti iš WWW į ne WWW
bet kuriam domenui .htaccess įsigalioja:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
tam tikram domenui, example.com:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule (.*) http://example.com/$1 [R=301,L]
Pakeičia pagrindinio domeno katalogo šaknį į public_html/subfolder
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ subfolder/index.php [L]
PASTABA: .htaccess failas turi būti domeno, kuriam norite sukonfigūruoti tam tikras taisykles, šaknyje.
Esamų .htaccess taisyklių išjungimas
Jei reikia išjungti kai kurias esamas taisykles, pavyzdžiui, testavimo tikslais, galite jas tiesiog pakomentuoti. Norėdami tai padaryti, kiekvienos taisyklės eilutės pradžioje pridėkite svaro ženklą