Einstiegsseite umlegen
Ole
- webserver
2 Christian Seiler0 Ole
Hi,
Ich bin z.Z. dabei einen xt:Commerce-Shop aufzubauen. Da die eigentliche Startseite nicht verwendet werden soll, sondern der Einstieg direkt über eine Artikelgruppe erfolgen soll suche ich nun eine Möglichkeit alle Zugriffe auf das Root auf eben jene Artikelgruppe umzuleiten.
http://www.example.de soll jedes mal zu http://www.example.de/Katalog umleiten.
Gegeben sind: Windows 2003, Apache 2, PHP 5
Meine Kenntnisse mit Apache und htaccess sind leider nicht so weit fortgeschritten, dass ich in den letzten Stunden eine Lösung gefunden hätte :(. Diverse Unterseiten könnte ich umleiten, aber mit dem Root hapert es.
Hat jemand nen Tipp für mich?
Danke
Ole
Hallo Ole,
http://www.example.de soll jedes mal zu http://www.example.de/Katalog umleiten.
Gegeben sind: Windows 2003, Apache 2, PHP 5
Meine Kenntnisse mit Apache und htaccess sind leider nicht so weit fortgeschritten, dass ich in den letzten Stunden eine Lösung gefunden hätte :(. Diverse Unterseiten könnte ich umleiten, aber mit dem Root hapert es.
Hat jemand nen Tipp für mich?
Naja, Redirect kannst Du nicht nutzen, weil das ja auch Unterseiten umleitet, was dann zu einer Endlosschleife führt.
Dir bleiben zwei Optionen:
In der VHost-Konfigurationsdatei sähe das dann z.B. so aus
RewriteEngine On
RewriteRule ^/$ /Katalog [R=301]
Oder in einer .htaccess so:
RewriteEngine On
RewriteBase /
RewriteRule ^$ /Katalog [R=301]
Einfache Variante, die in Extremfällen potentiell auf die Schnauze fällt:
<?php
// CGI/FCGI-Sapi
if (substr (php_sapi_name (), 0, 3) == 'cgi') {
Header ('Status: 301 Moved Permanently');
} else {
Header ('HTTP/1.1 301 Moved Permanently');
}
Header ('Location: http://' . $_SERVER['HTTP_HOST'] . '/Katalog');
?>
Kompliziertere Variante, die alles abdeckt:
<?php
// Protokoll bestimmen
$proto = array_key_exists ('HTTPS', $_SERVER) && $_SERVER['HTTPS'] == 'on' ? 'https' : 'http';
// Hostnamen bestimmen
if (array_key_exists ('HTTP_HOST', $_SERVER)) {
$host = $_SERVER['HTTP_HOST'];
} else {
$defaultPort = ($proto == 'https' ? 443 : 80);
$host = $_SERVER['SERVER_NAME'];
$port = array_key_exists ('SERVER_PORT', $_SERVER) ? $_SERVER['SERVER_PORT'] : $defaultPort;
if ($port != $defaultPort) {
$host .= ':' . $port;
}
}
// CGI/FCGI-Sapi
if (substr (php_sapi_name (), 0, 3) == 'cgi') {
Header ('Status: 301 Moved Permanently');
} else {
Header ('HTTP/1.1 301 Moved Permanently');
}
Header ('Location: ' . $proto . '://' . $host . '/Katalog');
?>
Viele Grüße,
Christian
Hallo Christian,
vielen Dank für die ausführlichen Infos.
Die Modifikation der index.php fällt leider raus, da diese vom xtc-shop beschlagnahmt wird.
Die anderen Lösungen habe ich nun samt und sonders durchprobiert, aber es ändert sich nichts. Auch in Kombination bleibt alles beim alten.
Ich hab es sowohl mit Apache- als auch mit Server-Neustart probiert, wobei ersteres imho ausreichen sollte.
Da ich die index.php nicht nutzen kann, habe ich mir eine test.php mit deinem Script angelegt und entsprechend "DirectoryIndex" in der httpd.conf angepasst. Auch das hat nicht geklappt...bzw. wurde gänzlich ignoriert. :(
Wobei ich mir sicher bin, dass es funktionieren muss. So wie ich das sehe, ist mein Problem größer als gedacht...da werd ich mir wohl den Server vorknöpfen müssen *grummel*
Grüße
Ole
(8-)>