On 13.09.2011 14:22, Christian Hager wrote:
Hallo Leute,
besteht die Möglichkeit mehrer 404 Seiten zu verwenden?
[...]
Hallo Namensvetter :-)
Am 6.6.2011 habe ich folgendes auf eine ähnliche Frage hier geantwortet:
[QUOTE]
Hallo,
Wir machen das mit dem angehängten PHP-Skript. Es muss in der
localconf.php eingetragen werden, steht auch im Header der Datei.
Dort kann dann für jede Domain eine Fehlerseite mit beliebigem Namen
angegeben werden. Für Domains, die nicht explizit aufgelistet sind, wird
eine Standardseite generiert.
Man könnte hier auch noch nach Pfaden differenzieren aber das brauchten
wir bisher nicht.
Nachteilig könnte man bewerten, dass das PHP-Skript händisch zu
erweitern ist.
[/QUOTE]
Vielleicht hilft es dir ja weiter.
Gruß
Roland
<?php
/**
* Damit das hier funktioniert, muss in der localconf.php folgendes stehen:
* $TYPO3_CONF_VARS['FE']['pageNotFound_handling'] =
'USER_FUNCTION:typo3conf/notfound.php:user_pageNotFound->pageNotFound';
*
* Pfad und Name der Datei muss ggf. angepasst werden.
*/
class user_pageNotFound {
function pageNotFound($param, $ref) {
# Hier koennnen spezielle Umleitungen eingefuegt werden
# 'domain' => array( 'id' => ID/Pfad der Zielseite, 'status' =
Statuscode ohne "Status:" oder "Http/1.1")
#
# Problem: Bei der Verwendung von Location zur Weiterleitung
auf eine andere URL, wird anscheinend automatisch
# der HTTP-Status 302 gesetzt ... mmmhhh ... das koennte man
sich nocheinmal anschauen.
$umleitung = array(
'www.xyz.de' => array('id' => "/notfound/",
'status' => '404 Not Found'),
'www.abc.de' => array('id' =>
"/index.php?id=10", 'status' => '404 Not Found'),
);
# Alle Spezialumleitungen abarbeiten
foreach( $umleitung as $domain => $conf ){
if (t3lib_div::getIndpEnv('HTTP_HOST') == $domain ) {
header("HTTP/1.1 ".$conf['status']);
# Pruefe ob PageID oder Pfad anggben wurde
if( TRUE == is_numeric($conf['id']) ){
header("Location:
http://".$domain."/index.php?".$conf['id']);
}else{
header("Location:
http://".$domain.$conf['id']);
}
exit;
}
}
# Die Standardfehlerseite
$this->setHeader();
$html = $this->getHTMLHeader();
$html .= $this->getHTMLBody(t3lib_div::getIndpEnv('HTTP_HOST'),
$param['currentUrl']);
$html .= $this->getHTMLFooter();
echo $html;
}
function setHeader(){
header("HTTP/1.1 404 Not Found");
}
/**
*
*/
function getHTMLHeader(){
$html = '
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
<base href="'.t3lib_div::getIndpEnv('HTTP_HOST').'" />
<title>Seite nicht gefunden</title>
</head>
<body>
';
return $html;
}
/*
*
*/
function getHTMLBody($domain, $referrer){
$html = '
<div id="wrapper" style="margin-left: 10px;">
<h1>Seite nicht gefunden / Keine
Zugriffsrechte</h1>
<p>
Die Seite <b>'.$domain.$referrer.'</b>
existiert nicht, oder aber Sie besitzen keine Zugriffsrechte dafür.<br/>
<br/>
Sie können versuchen die
gewünschte Seite von der Startseite aus zu erreichen:
<a
href="http://'.$domain.'">'.$domain.'</a>.
</p>
<br/>
<br/>
<br/>
<br/>
<h1>Page Not Found / No Access Rights</h1>
<p>
The page <b>'.$domain.$referrer.'</b> either
does not exist or you don\'t have sufficient rights to access it.<br/>
<br/>
You may get the desired page beginning your
search from the startpage: <a href="http://'.$domain.'">'.$domain.'</a>.
</p>
</div>
';
return $html;
}
function getHTMLFooter(){
$html = "</body></html>";
return $html;
}
}
?>
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german