wulffy
Goto Top

301 Redirect von Verzeichnissen und Dateien aus Root mit PHP möglich?

Hallo,

kann man mit PHP im Rootverzeichnis einer Domain 301 Redirect für nicht mehr vorhandene Verzeichnisse bzw. Dateien auf eine andere Domain machen?

z. B.
www domain de/verzeichnis/verzeichnis/datei.php existiert nicht mehr und soll gezielt auf

www domain com

oder in einem anderen Beispiel auf

www domain com/verzeichnis/verzeichnis/datei.php

mit 301 redirected werden.

oder eben von

www domain de/verzeichnis/ (existiert nicht mehr)

auf

www domain com/verzeichnis/

Content-Key: 99457

Url: https://administrator.de/contentid/99457

Printed on: April 25, 2024 at 20:04 o'clock

Member: megacarsIT
megacarsIT Oct 16, 2008 at 12:27:54 (UTC)
Goto Top
Hallo!!

Bei PHP weiss ich nicht,
aber auf jeden fall mit dem .htaccess-File kann man es tun.

http://www.trash.net/faq/htaccess.shtml

UPDATE:
Diesen Link habe ich noch gefunden:
http://www.webmasterexpert.de/post12142.html

Sollte also doch mit PHP funktionieren...
Member: dog
dog Oct 16, 2008 at 14:38:28 (UTC)
Goto Top
Bevor wir gleich die Holzhammer wie mod_rewrite und PHP auspacken.
Apache selbst kann auch Weiterleitungen:

http://httpd.apache.org/docs/1.3/mod/mod_alias.html#redirect
http://httpd.apache.org/docs/1.3/mod/mod_alias.html#redirectmatch
Member: Wulffy
Wulffy Oct 17, 2008 at 06:51:06 (UTC)
Goto Top
Hallo Max,

danke. mod_rewrite ist schon klar. Ich denke, ich sollte die Problematik etwas näher schildern.
Member: Wulffy
Wulffy Oct 17, 2008 at 07:43:52 (UTC)
Goto Top
Zitat von @megacarsIT:
Hallo!!

Diesen Link habe ich noch gefunden:
http://www.webmasterexpert.de/post12142.html

Sollte also doch mit PHP funktionieren...

Hi! Danke für diesen Link. "Boa" schrieb dort am 18.07.2005:

if(!preg_match("/^www\./",strtolower($_SERVER['HTTP_HOST'])))  
{
header("Status: 301 Permanently Moved");  
header("Location: http://www.Deine-Domain.de{$_SERVER['REQUEST_URI']}");  
exit(0);
}  

preg_match durchsucht die Zeichenkette $_SERVER['HTTP_HOST'] nach dem Suchmuster "/^www\./". - Bedeutet das: mit oder ohne www?

$_SERVER['HTTP_HOST'] liefert www domain tld

strtolower wandelt String (Zeichen) in Kleinbuchstaben

$_SERVER['REQUEST_URI'] liefert das Verzeichnis/den Pfad, der aufgerufen wurde.

Dieser PHP-Code würde also:

bei Aufruf von http: www alte-domain tld/verzeichnis/datei.php

mit 301 redirecten auf http: www neue-domain tld/verzeichnis/datei.php

Korrekt?

Mein Problem ist, dass Redirect über htaccess bei meinem Hoster bei allen Domains außer der Hauptdomain im Verzeichnis nicht funktioniert, obwohl es eigentlich funktionieren sollte.

/var/ www/ htdocs/ www hauptdomain tld (Redirect geht)

/var/ www/ htdocs/ www hauptdomain tld/domains/nebendomain.tld (Redirect geht nicht)
Member: dog
dog Oct 17, 2008 at 11:35:49 (UTC)
Goto Top
Tu das face-smile

Für deine ursprüngliche Beschreibung würde

RedirectMatch permanent ^(.*)$ http://neue-domain.com$1
reichen.
Member: megacarsIT
megacarsIT Oct 20, 2008 at 08:12:41 (UTC)
Goto Top
Ich meinte eigentlich vom Nutzer Boa das hier:

[code]
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.neue-domain.de;);
header("Connection: close");
?>
[/code]
Member: Wulffy
Wulffy Oct 21, 2008 at 07:05:48 (UTC)
Goto Top
Ja, ist aber kein PHP, sondern für Apache.
Member: Wulffy
Wulffy Oct 21, 2008 at 07:08:35 (UTC)
Goto Top
Leider geht es auf dem Webserver, den ich nutze, nicht. Daher suche ich ein PHP-Script.

Schade, dass sich hier niemand mit PHP-Kenntnissen gemeldet hat...
Member: dog
dog Oct 21, 2008 at 07:17:10 (UTC)
Goto Top
Im Beitrag von megacarsIT steht bereits eine nahezu komplette Lösung.

Du musst lediglich eine PHP-Datei anlegen und diese per Apaches ErrorDocument 404 Befehl immer dann aufrufen lassen, wenn eine Datei nicht gefunden wurde. Dann kannst du ganz einfach einen Redirect machen (siehe dazu auch die $_SERVER-Variablen).
Member: megacarsIT
megacarsIT Oct 21, 2008 at 14:37:36 (UTC)
Goto Top
Zitat von @megacarsIT:
Ich meinte eigentlich vom Nutzer Boa das hier:

[code]
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.neue-domain.de;);
header("Connection: close");
?>
[/code]

Wie ^^^ das ist doch PHP... aber man möge mich korrigieren, wenn es nicht so ist ;)