Ole: Einstiegsseite umlegen

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

--
Das Wort Vegetarier kommt aus dem Indianischen und bedeutet: Zu dumm zum Jagen.
  1. 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:

    1. mod_rewrite

    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]
    
    1. Du legst als Startseite (z.B. index.php, falls das per DirectoryIndex so konfiguriert ist) ein PHP-Script an, das umleitet:

    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

    1. 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-)>

      --
      Das Wort Vegetarier kommt aus dem Indianischen und bedeutet: Zu dumm zum Jagen.