Seite 1 von 1
weiterleitung auf /cms
Verfasst: Fr 15. Feb 2008, 12:40
von mark212
Hallo,
ich leite im Moment auf Grund eines Forumtips
mit
<?php
header("Location: cms/front_content.php");
?>
weiter auf mein /cms Verzeichnis. Ist diese Weiterleitung eurer Meinung nach unproblematisch für die Suchmaschinen?
Webseiten-Test zur Suchmaschinentauglichkeit meldet mir nur:
robots.txt nicht vorhanden.
Für einen Anfänger dürfte es wohl relativ schwierig sein, alles direkt ins Hauptverzeichnis /html zu verschieben… Habe es schon versucht und schon war das Layout zerschossen.
Grüße
Re: weiterleitung auf /cms
Verfasst: Fr 15. Feb 2008, 12:48
von emergence
mark212 hat geschrieben:weiter auf mein /cms Verzeichnis. Ist diese Weiterleitung eurer Meinung nach unproblematisch für die Suchmaschinen?
meiner meinung nach ist es die sauberste lösung eine weiterleitung mit header zu machen... die suchmaschinen kommen damit sicherlich zurecht...
Verfasst: Fr 15. Feb 2008, 13:13
von Dodger77
Am besten übergibt man dann auch noch einen sinnvollen Statuscode, z.B. so:
Code: Alles auswählen
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: cms/front_content.php");
?>
Verfasst: Fr 15. Feb 2008, 16:54
von delinquent
Schöner wäre es sicherlich, mit anderen Mitteln, wie mod_rewrite umzuleiten, denn so bekommst du das "cms/" nie aus der URL raus. Demnach liegt deine robots.txt auch unter cms/robots.txt (es sei denn, Du verschiebst sie).
Ein Richtig oder Falsch gibt's da eigentlich nicht. Deine Möglichkeit funktioniert natürlich auch.
Edit: Ach ja, soweit ich mich erinnere, sind laut HTTP Spezifikation aber nur absolute URIs im Location-Header erlaubt, also
Code: Alles auswählen
header("HTTP/1.1 301 Moved permanently");
header("Location: http://<domain>.tld/cms/front_content.php");
Ich hab andererseits aber noch nie gesehen, dass ein Client relative URLs nicht versteht.
Verfasst: Sa 16. Feb 2008, 11:20
von mark212
Ich könnte mir auch gerne vorstellen mit
mod_rewrite umzuleiten, ohne das cms in der Adresse würde mir dies auch besser gefallen.
Was müsste eine .htaccess beinhalten?
Verfasst: Sa 16. Feb 2008, 16:46
von xmurrix
mark212 hat geschrieben:Ich könnte mir auch gerne vorstellen mit
mod_rewrite umzuleiten, ohne das cms in der Adresse würde mir dies auch besser gefallen.
Was müsste eine .htaccess beinhalten?
Hallo mark212,
wenn es dir nur darum geht, von der index-Seite auf die /cms/front_content.php zu kommen, sollte das auch mit folgenden 2 Zeilen in der index-Seite ohne Verwendung der header-Direktive gehen:
Code: Alles auswählen
// in das verzeichnis '/cms/' wechseln
chdir('./cms/');
// front_content.php
include('front_content.php');
Mit .htaccess würde es folgendermaßen gehen:
Code: Alles auswählen
RewriteRule ^$ /cms/front_content.php [QSA,L]
RewriteRule ^/$ /cms/front_content.php [QSA,L]
Das lässt sich bestimmt auch mit einer Zeile in der .htaccess machen, habe aber keine Lösung dafür auf die Schnelle parat.
Wenn dich das '/cms/' in der Adresszeile stört, gibt es dafür in der Contenido-Erweiterung
AdvancedMod Rewrite auch einen Ansatz.
Gruß
xmurrix
Verfasst: So 17. Feb 2008, 18:48
von delinquent
Diese mod_rewrite Regeln machen aber nichts anderes, als der Location-Header. Um das cms/ wegzubekommen, müsstest Du sowas machen, wie (ungetestet):
Code: Alles auswählen
<IfModule mod_rewrite.c>
RewriteEngine on
# Achtung, bitte Basisverzeichnis anpassen!
RewriteBase /
# Existierende Dateien und Ordner ausschließen
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.+$ - [L]
# Alles andere transparent umschreiben
RewriteRule ^(.*)$ cms/$1 [QSA,L]
</IfModule>
Danach musst Du in der Mandantenkonfiguration das cms/ aus dem Web-Pfad entfernen.
Gruß,
Manuel
Verfasst: Mo 18. Feb 2008, 21:52
von mark212
Mit dem hier geht es schon sehr gut..
RewriteRule ^$ /cms/front_content.php [QSA,L]
RewriteRule ^/$ /cms/front_content.php [QSA,L]
Werde ich noch testen:
# Achtung, bitte Basisverzeichnis anpassen!
RewriteBase /
# Existierende Dateien und Ordner ausschließen
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.+$ - [L]
# Alles andere transparent umschreiben
RewriteRule ^(.*)$ cms/$1 [QSA,L]
</IfModule>[/code]
Danach musst Du in der Mandantenkonfiguration das cms/ aus dem Web-Pfad entfernen.
Danke!