301 Weiterleitung mit php



  • <html>
    <head>
    <?php 
    header("HTTP/1.1 301 Moved Permanently"); 
    header("Location: http://example.de"); 
    header("Connection: close"); 
    ?>
    </head>
    <body>
    Please use <a href="http://example.de">http://example.de</a>
    </body>
    </html>
    

    Ich bekomme immer den Fehler:

    Warning: Cannot modify header information - headers already sent by (output started at /var/www/XXXX/html/www/index.php:3) in /var/www/XXXX/html/www/index.php on line 4

    Weiss wer warum? Eigentlich sollte das funktionieren.
    Möchte die www domain die auf den Ordner www zeigt, auf die Domain ohne www umleiten.



  • Hi Scorcher24,

    schau dir deinen Quellcode einmal ganz genau an und überlege dir folgendes:
    1. Was macht die Funktion header()?
    2. Welchen Zweck möchtest du damit erfüllen?
    3. Wann wird der HTTP-Header verschickt?
    4. Wann im Quelltext solltest du die Funktion entsprechend aufrufen?

    Hast du dir die Fehlermeldung durchgelesen? Sie sagt dir eigentlich schon, was verkehrt läuft ...

    Grundsätzlich würde ich so eine Weiterleitung wie von dir gewünscht aber via .htaccess machen, sofern verfügbar. Das ist weniger Gefrickel und damit kannst du bequem sämtliche Anfragen auf einmal umleiten, nicht nur den Request auf die Hauptseite.



  • <?php
    
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: http://example.com');
    exit();
    
    ?>
    

    Okay, so gings.
    Aber ganz ehrlich: Ich hab nicht viel Ahnung von php. Möchte ich auch nicht.
    Ich versuche nur das was anfällt zu lösen^^. Danke trotzdem.
    htaccess habe ich probiert, ging nicht. Naja, net wild.^^
    Es geht eigentlich fast nur darum den google crawler umzuleiten und duplikate zu vermeiden.



  • Scorcher24 schrieb:

    header("HTTP/1.1 301 Moved Permanently"); 
    header("Location: http://example.de"); 
    header("Connection: close");
    

    Wofür ist "Connection: close" gut? Das macht das ganze doch nur langsamer, weil der Browser gezwungen wird eine neue Verbindung aufzubauen.

    Scorcher24 schrieb:

    Möchte die www domain die auf den Ordner www zeigt, auf die Domain ohne www umleiten.

    Das geht auch ganz gut mit mod_rewrite. Dann ist diese Weiterleitung völlig unabhängig von den Skripten, die auf dem Server laufen, und funktioniert immer.


Anmelden zum Antworten