URL perrašymo taisyklės: Skirtumas tarp puslapio versijų

Iš IV pagalba klientams.
Peršokti į: navigacija, paiešką
 
(nerodoma 11 tarpinių versijų, sukurtų 5 naudotojų)
7 eilutė: 7 eilutė:
 
==== 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 style="color:green">
+
<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 style="color:green">
+
<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. 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]] ).
+
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 style="color:green">
+
<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ą ====
==== 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>:
 
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 style="color:green">
+
<pre>
 
RewriteEngine on
 
RewriteEngine on
 
RewriteRule ^subdomenas/(.*)$ http://subdomenas.mano-svetaine.lt/$1 [R=301,L]
 
RewriteRule ^subdomenas/(.*)$ http://subdomenas.mano-svetaine.lt/$1 [R=301,L]
 
</pre>
 
</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 ====
 
==== Vienos svetainės dalies nukreipimas ====
  
<pre style="color:green">
+
<pre>
 
redirect 301 /dabartinis/failas.html http://www.kita-svetaine.com/naujas/failas.html
 
redirect 301 /dabartinis/failas.html http://www.kita-svetaine.com/naujas/failas.html
 
</pre>
 
</pre>
  
==== Vienos svetainės dalies nukreipimas ====
+
==== 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ą.  
 
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į:
 
* Tam, kad peradresuotų lankytojus į kitą puslapį:
<pre style="color:green">
+
<pre>
 
  Options +FollowSymlinks
 
  Options +FollowSymlinks
 
  RewriteEngine on
 
  RewriteEngine on
 
  RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1
 
  RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1
  RewriteRule (.*) http://'''Kitas_adresas.lt'''/$1 [R=301,L]
+
  RewriteRule (.*) http://Kitas_adresas.lt/$1 [R=301,L]
 
</pre>  
 
</pre>  
  
 
* Tam, kad atvaizduotų kažkokį failą:
 
* Tam, kad atvaizduotų kažkokį failą:
<pre style="color:green">  
+
<pre>
 
  Options +FollowSymlinks
 
  Options +FollowSymlinks
 
  RewriteEngine on
 
  RewriteEngine on
 
  RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1
 
  RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1
  RewriteRule \.html$ '''/kitas_puslapis.html''' [R=302,L]
+
  RewriteRule \.html$ /kitas_puslapis.html [R=302,L]
 
</pre>
 
</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 " '''|''' ":
 
* jei reikia pridėti keletą IP adresų, jie atskiriami naudojant " '''|''' ":
<pre style="color:green">  
+
<pre>
 
  RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1|^195\.36\.67\.134|^195\.157\.64\.5
 
  RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1|^195\.36\.67\.134|^195\.157\.64\.5
 
</pre>
 
</pre>
[[Kategorija:Talpinimo_problemų_sprendimas]]
+
 
 +
==== 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>
 +
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>
 +
 
 +
[[Kategorija:Serverio_ir_PHP_nustatymai]]

Dabartinė 14: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ų:


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]