php átirányítás mod_rewrite nélkül

Mindenkivel előfordulhat, hogy olyan környezetben szeretne átirányítgatni, ahol a mod_rewrite nem elérhető.

Nézzük szépen végig az eseteket és az alkalmazható orvosságot.

A legegyszerűbb eset, amikot egy adott URL-t szeretnénk új helyszínre átpasszolni.
Orvosság: php fájl feltöltése a régi helyére az alábbi tartalommal

<?php
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.új-helyszín.hu" ); 
?>

Bonyolítsuk a dolgot, és játszunk olyat, hogy a mappa nevű mappára érkező lekéréseket szeretnénk mondjuk az új helyszínre átküldeni.
Hozzunk létre mondjuk egy redirection.php fájlt az alábbi tartalommal és include-dal meghívjuk a szkript első sorában.

<?php
if(stristr($_SERVER['REQUEST_URI'], '/mappa/')){
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.új-helyszín.hu/");
exit();
}
?>

Kitaláljuk, hogy szeretnénk a www vs. nem-www problémát egyszer és mindenkorra tisztázni, ezzel egységesítve a bejövő linkek támogatását és a duplikált tartalmak egy részét megszűntetve.
Szeressük jobban a www nélküli verziót és az előbb felvázolt redirect.php-be most tegyük ezt a tartalmat.

<?php  
if(stristr($_SERVER["HTTP_HOST"], 'www')){

header("HTTP/1.1 301 Moved Permanently"); header("Location: http://honlapom.hu/" . $_SERVER["REQUEST_URI"]); exit(); } ?>

De van, aki a www-t szereti, kedvezzünk nekik is egy kicsikét.

<?php  if(!stristr($_SERVER["HTTP_HOST"], 'www')){
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.honlapom.hu/" . $_SERVER["REQUEST_URI"]);  
exit();  } 
?>

További kellemes napot!

8 thoughts on “php átirányítás mod_rewrite nélkül

  1. extrás

    Hello!
    Így, kiégett szemmel, csak azt szedtem le a fennt írottakról, hogy, ha valamiféleképp ezt a php kódot beillesztem, egy az extra.hu-n futó WP blogomon, akkor lehetővé válik a “Pretty Link” alkalmazása?
    Mivel a modrewrite nem engedélyezett és szeretnék a blogomnak valami
    “látható” struktúrát adni!Köszönöm a mielöbbi hozzászólást!

  2. Bagi Zoltán Post author

    Szia!
    Sajnos nem. Ezek a kódok nem alkalmasak a mod_rewrite bekapcsolására, csak oldal átirányításra. Milyen szkriptet futtatsz az extrán? Lehet lesz valami elternatív megoldás.

  3. extrás

    Hello, Zoltán!
    Egy WP blog van fenn és, amikor egy ilyen “/index.php/%category%/%postname%/” alakra váltok át, akkor sikeresen megváltozik a struktúra, DE, mihelyt rákkattintok az egyik “szép” linkre abban a pillanatban 404, majd manuálisan del_htaccess és fut a blogom megint phpID-kel. 🙁 .Egy másik(fizetős) szerveren ez hiba nem áll fennt, ugyanis itt a .htaccess és a mod-rewrit is alkalmazható! Üdv
    ui. Remélem van/lesz valami alkalmazható megoldás?!

  4. extrás

    Ok. Köszönöm a linket, majd, ha lesz időm, akkor majd próbálok valamit!Addig is seonyár2008 ! 🙂

  5. albert

    ha tisztán php-ből akarsz mod_rewrite-ot, apache mod_rewrite megléte nélkül, valamelyik zend oldalon kell, hogy legyen egy cikk róla. azt használtam egy éven át egy raklapnyi oldalon, hibátlanul működik, és a robotok is szeretik

  6. y.men

    Sajnos az utolsó két kód nem jól működik, mégpedig azért, mert a
    ($_SERVER[‘HTTP_HOST’]); már a lecsupaszitott (www.nélküli) változatot adja vissza. Tehát az elsőnél a feltétel sosem lesz igaz, a másodiknál meg mindig, akkor is ha eleve a www-s változatot írjuk be. Ami nekünk kell az a:
    ($_SERVER[‘SERVER_NAME’]);

    Üdv y.men

  7. y.men

    Bocs találtam még egy dolgot. A $_SERVER[“REQUEST_URI”] előtti / jel nem kell, mert akkor dupla / jel lesz.

Comments are closed.