Error 404 átirányítás
Hogyan oldjam meg, hogy átirányításkor megadja a következő oldalon, hogy honnan jött a látogató?Ennyi kész is van, csak a $file helyére nem rak semmi. Tudom, hogy az aposztófok közé kéne besuvasztani a $file-t, de sajna úgy nem műkszik. Mi a megoldás? Példa.
Rossz példa. Az kell nekem, hogy mit írtak be, tehát, hogy így legyen az uri: http://realgameguides.com/?view=error404&lang=en&file=http://realgameguides.com/példa.
■ <?php
$language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
$file=$_SERVER['HTTP_REFERER'];
if($language=='hu')
{
header('location:http://realgameguides.com/?view=error404&lang=hu&file='.$file);
exit;
}
else
{
header('location:http://realgameguides.com/?view=error404&lang=en&file='.$file);
exit;
}
?>
Rossz példa. Az kell nekem, hogy mit írtak be, tehát, hogy így legyen az uri: http://realgameguides.com/?view=error404&lang=en&file=http://realgameguides.com/példa.
Nem érdemes
Ha jót akarsz magadnak, a weboldaladat kiszolgáló motorba építesz egy olyan lehetőséget, hogy ugyanazon a címen szolgáljon ki egy 404-es oldalt.
Mit javasolsz?
Programkód?
Itt van
ErrorDocument 404 http://realgameguides.com/err.php
Ha csak /err.php lenne, akkor a többi oldalról nem hozná be, onnan keresné a fájlt, pl. http://armyoftwo.realgameguides.com/err.php-t akarna behozni. :/
Aha
Az érem másik oldala az, hogy igazából az Apache ErrorDocument csak meglehetősen kiforratlan lehetőségeket ad a hibakezelésre. Ez akkor jó, ha nincs egy darab belépési pontod (index.php) ami minden oldalt lekezel. Miután az oldal feldolgozásában nem csak 404-es hibák léphetnek fel, javaslom, hogy hosszú távon dolgozd át az alkalmazásodat olyanra, hogy minden lekérdezés az index.php-ra fusson rá, majd abban döntsd el, hogy melyik modult kell betölteni. Ugyanitt akkor hibát is tudsz kezelni.
nem vagyok profi, de..
Egyrészt szerintem nem kéne aposztrófok közé tenni a $file - t, mert az egy változó végül is..
A másik pedig, mit szeretnél, mi legyen a $file visszatérési értéke? Csak azért, mert ha az egy fájl lenne (amit valószínűnek tartok, akkor: ) a php manual szerinti helyes mód:
Azért nem tesz a helyére
404 Not Found
fejléc kiadása és hibaüzenet kiírása kötelező. Ne irányíts át.Most egyből átirányít.
ErrorDocument 404
Csak így nem jó.
Átirányítás nélkül azt nem
És azt hogy csináljam?
Amikor nem létező címet, vagy
Nem működik
Mit jelent az, hogy nem megy?
Persze
Akkor most hogy is lenne helyes?
Mondtam már, semmilyen
Ha különálló PHP állományok szolgálják ki az egyes oldalakat, és maga az állomány sem létezik (news.php helyett newz.php-t ütöttek be), akkor pedig .htaccess-ből irányítsd át egy oldalra, ahol kiírsz egy hibát és a fejlécet.