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!
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!
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.
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?!
itt http://codex.wordpress.org/Using_Permalinks#Permalinks_without_mod_rewrite írnak a dologról, de nem garantált az eredmény sajnos. 🙁
Ok. Köszönöm a linket, majd, ha lesz időm, akkor majd próbálok valamit!Addig is seonyár2008 ! 🙂
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
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
Bocs találtam még egy dolgot. A $_SERVER[“REQUEST_URI”] előtti / jel nem kell, mert akkor dupla / jel lesz.