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-ID: 99457

Url: https://administrator.de/forum/301-redirect-von-verzeichnissen-und-dateien-aus-root-mit-php-moeglich-99457.html

Ausgedruckt am: 22.12.2024 um 12:12 Uhr

megacarsIT
megacarsIT 16.10.2008 um 14:27:54 Uhr
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...
dog
dog 16.10.2008 um 16:38:28 Uhr
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
Wulffy
Wulffy 17.10.2008 um 08:51:06 Uhr
Goto Top
Hallo Max,

danke. mod_rewrite ist schon klar. Ich denke, ich sollte die Problematik etwas näher schildern.
Wulffy
Wulffy 17.10.2008 um 09:43:52 Uhr
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)
dog
dog 17.10.2008 um 13:35:49 Uhr
Goto Top
Tu das face-smile

Für deine ursprüngliche Beschreibung würde

RedirectMatch permanent ^(.*)$ http://neue-domain.com$1
reichen.
megacarsIT
megacarsIT 20.10.2008 um 10:12:41 Uhr
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]
Wulffy
Wulffy 21.10.2008 um 09:05:48 Uhr
Goto Top
Ja, ist aber kein PHP, sondern für Apache.
Wulffy
Wulffy 21.10.2008 um 09:08:35 Uhr
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...
dog
dog 21.10.2008 um 09:17:10 Uhr
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).
megacarsIT
megacarsIT 21.10.2008 um 16:37:36 Uhr
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 ;)