Autor Zpráva
Panther
Profil *
Dobrý večer, mám stránky s obsahem vkládaným pomocí include a parametry v adresách. Otázkou je, jak mám udělat chybovou stránku (404). Jestli ji mám nastavit jako stránku, která se includuje, neexistuje-li stránka z parametru nebo pomocí ErrorDocument, ale tady se zase vloží stránka z file_exists, pokud stránka z parametru neexistuje (pokud se změní přípona stránky, vloží se stránka z ErrorDocument, viz. dále). Ještě bych dodal, že ty dynamické adresy jsou pomocí mod_rewrite přepisovány na statické. Tady jsou kódy pro vkládání obsahu stránky pomocí include a obsah .htaccess:
<?php 

if (!isset($_GET['pg'])) {$page = "intro";}
else {$page = $_GET['pg'];}
$file = "Files/".$page.".php";
if (!file_exists($file)) {$file = "Files/intro.php";}
include ($file);
?>


RewriteEngine On

ErrorDocument 404 /QSWS/error-404.html
RewriteBase /QSWS
RewriteCond %{QUERY_STRING} ^pg=([^&]+)$
RewriteRule ^mainpage\.php$ %1.html? [R,L]
RewriteRule ^([^/]+)\.html mainpage.php?rw=1&pg=$1 [L,QSA]

Poraďte prosím, jak docílit toho, aby se mi objevila chybová stránka v případě nenalezení souboru namísto, aby se objevila výchozí stránka (v tomto případě intro.php) definovaná v PHP skriptu. Tento příspěvek už jsem jednou psal, ale nějak zapadl mezi ostatními, každopádně děkuji za pomoc.
WertriK
Profil
Já bych includoval errorovou stránku v případě že file_existst hlásí false ale i ErrorDocument 404 bych měl takto nastavený.

<?php

if (!isset($_GET['pg'])) {$page = "intro";}

else {$page = $_GET['pg'];}

$file = "Files/".$page.".php";

if (!file_exists($file)) {$file = "Files/error404.php";}

include ($file);

?>

ErrorDocument 404 index.php?pg=error404


S tím, že v souboru Files/error404.php je cbyhová zpráva ....
Panther
Profil *
to WetriK: a v případě file_exists - šla by ta chybovka posílat s hlavičkou 404???
Panther
Profil *
Copak se tu nenajde nikdo, kdo by dokázal pomoct???
Toto téma je uzamčeno. Odpověď nelze zaslat.

0