URL perrašymo taisyklės: Skirtumas tarp puslapio versijų
S (→Peradresavimas iš senos svetainės į naują) |
|||
(nerodoma 19 tarpinių versijų, sukurtų 5 naudotojų) | |||
1 eilutė: | 1 eilutė: | ||
− | Visuose serveriuose yra įdiegtas mod_rewrite modulis, kuris suteikia labai daug galimybių URL (WWW adresų | + | Visuose serveriuose yra įdiegtas mod_rewrite modulis, kuris suteikia labai daug galimybių URL (WWW adresų/domenų) perrašymui. <br /> |
− | Tam reikės naudoti failą .htaccess kuris yra pagrindiniame svetainės kataloge public_html arba toje direktorijoje, kurią norite apsaugoti. Jei šio failo nėra - jį galite tiesiog sukurti. | + | Tam reikės naudoti failą '''.htaccess''' kuris yra pagrindiniame svetainės kataloge public_html arba toje direktorijoje, kurią norite apsaugoti. Jei šio failo nėra - jį galite tiesiog sukurti. |
− | Taisyklė įsigalioja ją įrašius į .htaccess failą. Keletas populiariausių pavyzdžių: | + | Taisyklė įsigalioja ją įrašius į '''.htaccess''' failą. Keletas populiariausių pavyzdžių: |
==== Peradresavimas iš <nowiki>http://mano-svetaine.lt</nowiki> į <nowiki>www.mano-svetaine.lt</nowiki> ==== | ==== Peradresavimas iš <nowiki>http://mano-svetaine.lt</nowiki> į <nowiki>www.mano-svetaine.lt</nowiki> ==== | ||
− | <pre | + | <pre> |
# peradresavimas is domeno i www subdomena | # peradresavimas is domeno i www subdomena | ||
RewriteEngine on | RewriteEngine on | ||
18 eilutė: | 18 eilutė: | ||
==== Peradresavimas iš <nowiki>www.mano-svetaine.lt</nowiki> į <nowiki>http://mano-svetaine.lt</nowiki> ==== | ==== Peradresavimas iš <nowiki>www.mano-svetaine.lt</nowiki> į <nowiki>http://mano-svetaine.lt</nowiki> ==== | ||
− | <pre | + | <pre> |
# pastovus peradresavimas iš www subdomeno į domeną | # pastovus peradresavimas iš www subdomeno į domeną | ||
RewriteEngine on | RewriteEngine on | ||
28 eilutė: | 28 eilutė: | ||
==== Peradresavimas iš senos svetainės į naują ==== | ==== Peradresavimas iš senos svetainės į naują ==== | ||
− | Svetaines peradresuoti galima ir kitais būdais ( [[Kur_ir_kaip_nukreipti_domeną|paspauskite čia]] ), tačiau peradresavimas .htaccess failu naudingas specifinėse situacijose, pvz. nekeičiant katalogų struktūros svetainės failai buvo perkelti kitam domenui ir dar nereikia "senojo" domeno pridėti kaip sinonimo į naująjį ( [[Domenų_parkavimas_serveryje|kas tai yra rasite paspaudę čia]] ). | + | Svetaines peradresuoti galima ir kitais būdais ([[Kur_ir_kaip_nukreipti_domeną|paspauskite čia]]), tačiau peradresavimas .htaccess failu naudingas specifinėse situacijose, pvz. jei nekeičiant katalogų struktūros svetainės failai buvo perkelti kitam domenui ir dar nereikia "senojo" domeno pridėti kaip sinonimo į naująjį adresą ([[Domenų_parkavimas_serveryje|kas tai yra rasite paspaudę čia]]). |
− | <pre | + | <pre> |
# Nukreipiama i naujaja svetaine | # Nukreipiama i naujaja svetaine | ||
RewriteEngine On | RewriteEngine On | ||
37 eilutė: | 37 eilutė: | ||
Pastaba: vietoj ''nauja-svetaine.lt'' naudokite savo svetainės adresą | Pastaba: vietoj ''nauja-svetaine.lt'' naudokite savo svetainės adresą | ||
+ | ==== Lankytojų perkėlimas į pagrindinį subdomeną ==== | ||
+ | Naudinga tuomet, kai sukuriamas atskiras subdomenas ir nenorite, jog lankytojai jį atidarytų surinkę adresą <nowiki>mano-svetaine/subdomenas, o reikia, kad visada veiktų subdomenas.mano-svetaine.lt</nowiki>: | ||
+ | <pre> | ||
+ | RewriteEngine on | ||
+ | RewriteRule ^subdomenas/(.*)$ http://subdomenas.mano-svetaine.lt/$1 [R=301,L] | ||
+ | </pre> | ||
+ | |||
+ | Prireikus galima sukurti išimtį, pvz. adresu ''"mano-svetaine.lt/nekeisti"'' nebus atliekamas joks pakeitimas: | ||
+ | <pre> | ||
+ | RewriteEngine on | ||
+ | RewriteCond %{REQUEST_URI} !/nekeisti | ||
+ | RewriteRule ^subdomenas/(.*)$ http://subdomenas.mano-svetaine.lt/$1 [R=301,L] | ||
+ | </pre> | ||
+ | |||
+ | ==== Vienos svetainės dalies nukreipimas ==== | ||
+ | |||
+ | <pre> | ||
+ | redirect 301 /dabartinis/failas.html http://www.kita-svetaine.com/naujas/failas.html | ||
+ | </pre> | ||
+ | |||
+ | ==== Visų, išskyrus vieną, lankytojų nukreipimas ==== | ||
+ | Naudinga tuomet, kai dar kuriama svetainė ir visiems, išskyrus programuotoją, norima atvaizduoti vieną svetainės versiją, programuotojui - kitą. | ||
+ | * Tam, kad peradresuotų lankytojus į kitą puslapį: | ||
+ | <pre> | ||
+ | Options +FollowSymlinks | ||
+ | RewriteEngine on | ||
+ | RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1 | ||
+ | RewriteRule (.*) http://Kitas_adresas.lt/$1 [R=301,L] | ||
+ | </pre> | ||
+ | * Tam, kad atvaizduotų kažkokį failą: | ||
+ | <pre> | ||
+ | Options +FollowSymlinks | ||
+ | RewriteEngine on | ||
+ | RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1 | ||
+ | RewriteRule \.html$ /kitas_puslapis.html [R=302,L] | ||
+ | </pre> | ||
+ | * Norint lankytojus nukreipti į kitą, to paties domeno katalogą (pavyzdžiui "testas"), galite panaudoti kodą: | ||
+ | <pre> | ||
+ | Options +FollowSymlinks | ||
+ | RewriteEngine on | ||
+ | RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1 | ||
+ | RewriteRule ^((?!testas/).*?)/?$ testas/$1 [L,NC] | ||
+ | </pre> | ||
+ | * jei reikia pridėti keletą IP adresų, jie atskiriami naudojant " '''|''' ": | ||
+ | <pre> | ||
+ | RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1|^195\.36\.67\.134|^195\.157\.64\.5 | ||
+ | </pre> | ||
+ | ==== Išimtis ==== | ||
+ | Galima sukurti specialias taisykles, kuomet peradresavimas nesuveikia. Pvz. ši taisyklė nutrauktų peradresavimą, jei atidaromas adresas būtų <nowiki>http://mano-svetaine.lt/failas.txt</nowiki> | ||
− | <pre | + | <pre> |
+ | RewriteCond %{REQUEST_URI} !/failas.txt [NC] | ||
+ | </pre> | ||
+ | ==== Svetainės pasiekimas iš subdirektorijos ==== | ||
+ | |||
+ | Jei norima svetainę pasiekti iš 1 lygiu žemiau esančio katalogo (subdirektorijos), pavyzdžiui ''testas'' (t.y iš public_html/testas), pagrindiniame kataloge (public_hml) .htaccess faile įterpkite šį kodą: | ||
+ | |||
+ | <pre> | ||
+ | RewriteEngine on | ||
+ | RewriteBase / | ||
+ | RewriteRule ^((?!testas/).*?)/?$ testas/$1 [L,NC] | ||
</pre> | </pre> | ||
+ | |||
+ | [[Kategorija:Serverio_ir_PHP_nustatymai]] |
Dabartinė 15:00, 11 rugsėjo 2019 versija
Visuose serveriuose yra įdiegtas mod_rewrite modulis, kuris suteikia labai daug galimybių URL (WWW adresų/domenų) perrašymui.
Tam reikės naudoti failą .htaccess kuris yra pagrindiniame svetainės kataloge public_html arba toje direktorijoje, kurią norite apsaugoti. Jei šio failo nėra - jį galite tiesiog sukurti.
Taisyklė įsigalioja ją įrašius į .htaccess failą. Keletas populiariausių pavyzdžių:
Turinys
[slėpti]- 1 Peradresavimas iš http://mano-svetaine.lt į www.mano-svetaine.lt
- 2 Peradresavimas iš www.mano-svetaine.lt į http://mano-svetaine.lt
- 3 Peradresavimas iš senos svetainės į naują
- 4 Lankytojų perkėlimas į pagrindinį subdomeną
- 5 Vienos svetainės dalies nukreipimas
- 6 Visų, išskyrus vieną, lankytojų nukreipimas
- 7 Išimtis
- 8 Svetainės pasiekimas iš subdirektorijos
Peradresavimas iš http://mano-svetaine.lt į www.mano-svetaine.lt
# peradresavimas is domeno i www subdomena RewriteEngine on RewriteCond %{HTTP_HOST} ^mano-svetaine\.lt$ [NC] RewriteRule ^(.*)$ http://www.mano-svetaine.lt/$1 [R=301,L]
Pastaba: vietoj mano-svetaine, lt ir mano-svetaine.lt naudokite savo svetainės adresą
Peradresavimas iš www.mano-svetaine.lt į http://mano-svetaine.lt
# pastovus peradresavimas iš www subdomeno į domeną RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.mano-svetaine\.lt$ [NC] RewriteRule ^(.*)$ http://mano-svetaine.lt/$1 [R=301,L]
Pastaba: vietoj mano-svetaine, lt ir mano-svetaine.lt naudokite savo svetainės adresą
Peradresavimas iš senos svetainės į naują
Svetaines peradresuoti galima ir kitais būdais (paspauskite čia), tačiau peradresavimas .htaccess failu naudingas specifinėse situacijose, pvz. jei nekeičiant katalogų struktūros svetainės failai buvo perkelti kitam domenui ir dar nereikia "senojo" domeno pridėti kaip sinonimo į naująjį adresą (kas tai yra rasite paspaudę čia).
# Nukreipiama i naujaja svetaine RewriteEngine On RewriteRule ^(.*)$ http://www.nauja-svetaine.lt/$1 [R=301,L]
Pastaba: vietoj nauja-svetaine.lt naudokite savo svetainės adresą
Lankytojų perkėlimas į pagrindinį subdomeną
Naudinga tuomet, kai sukuriamas atskiras subdomenas ir nenorite, jog lankytojai jį atidarytų surinkę adresą mano-svetaine/subdomenas, o reikia, kad visada veiktų subdomenas.mano-svetaine.lt:
RewriteEngine on RewriteRule ^subdomenas/(.*)$ http://subdomenas.mano-svetaine.lt/$1 [R=301,L]
Prireikus galima sukurti išimtį, pvz. adresu "mano-svetaine.lt/nekeisti" nebus atliekamas joks pakeitimas:
RewriteEngine on RewriteCond %{REQUEST_URI} !/nekeisti RewriteRule ^subdomenas/(.*)$ http://subdomenas.mano-svetaine.lt/$1 [R=301,L]
Vienos svetainės dalies nukreipimas
redirect 301 /dabartinis/failas.html http://www.kita-svetaine.com/naujas/failas.html
Visų, išskyrus vieną, lankytojų nukreipimas
Naudinga tuomet, kai dar kuriama svetainė ir visiems, išskyrus programuotoją, norima atvaizduoti vieną svetainės versiją, programuotojui - kitą.
- Tam, kad peradresuotų lankytojus į kitą puslapį:
Options +FollowSymlinks RewriteEngine on RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1 RewriteRule (.*) http://Kitas_adresas.lt/$1 [R=301,L]
- Tam, kad atvaizduotų kažkokį failą:
Options +FollowSymlinks RewriteEngine on RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1 RewriteRule \.html$ /kitas_puslapis.html [R=302,L]
- Norint lankytojus nukreipti į kitą, to paties domeno katalogą (pavyzdžiui "testas"), galite panaudoti kodą:
Options +FollowSymlinks RewriteEngine on RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1 RewriteRule ^((?!testas/).*?)/?$ testas/$1 [L,NC]
- jei reikia pridėti keletą IP adresų, jie atskiriami naudojant " | ":
RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1|^195\.36\.67\.134|^195\.157\.64\.5
Išimtis
Galima sukurti specialias taisykles, kuomet peradresavimas nesuveikia. Pvz. ši taisyklė nutrauktų peradresavimą, jei atidaromas adresas būtų http://mano-svetaine.lt/failas.txt
RewriteCond %{REQUEST_URI} !/failas.txt [NC]
Svetainės pasiekimas iš subdirektorijos
Jei norima svetainę pasiekti iš 1 lygiu žemiau esančio katalogo (subdirektorijos), pavyzdžiui testas (t.y iš public_html/testas), pagrindiniame kataloge (public_hml) .htaccess faile įterpkite šį kodą:
RewriteEngine on RewriteBase / RewriteRule ^((?!testas/).*?)/?$ testas/$1 [L,NC]