Seite 1 von 1

301 Redirect auf / statt index.php und index.php?

Verfasst: 14.02.2007, 00:03
von redlabour
Hallo,

ich möchte gerne per Rewrite-Rule bei Aufruf von :

https://www.domain.de/portal.php
https://www.domain.de/portal.php?
https://domain.de/portal.php
https://domain.de/portal.php?

einen 301 Redirect auf https://www.domain.de erreichen um eben dennoch als Anzeige die portal.php zu bekommen und den PR zu bündeln.

Jedoch ohne das nachfolgende https://domain.de/forum/ zu beeinträchtigen.

Weiss jemand wie es geht ? Bin mir sicher das sich webweit etwas finden lässt aber da 99% der User keine ordentlichen Überschriften verwenden ... na ja ... ich such schon seit einer Stunde. ;)

LG

redlabour

Verfasst:
von

Verfasst: 15.02.2007, 00:08
von redlabour
Keiner eine Idee oder geht das gar nicht ?

Verfasst: 15.02.2007, 07:14
von jabz.biz
Das ist ja eher eine Codeing Frage denn eine SEO Frage. Versuchs doch mal bei www.webmasterpark.net im Forum.

Verfasst:
von

Verfasst: 15.02.2007, 07:59
von redlabour
jabz.biz hat geschrieben:Das ist ja eher eine Codeing Frage denn eine SEO Frage. Versuchs doch mal bei www.webmasterpark.net im Forum.
Danke für den Tipp - da habe ich es zuerst versucht - ohne Erfolg. ;)

Verfasst: 15.02.2007, 08:04
von firestarter
Also du willst domain.de/portal.php auf domain.de umleiten?

Aber domain.de/forum/ willst du nicht umleiten?

Dann würde ich es mit der Apache-Directive probieren:

DirectoryIndex portal.php

Setze dies in eine htaccess in deinem rootverzeichnis - E voilà!


Gruß Frank

Verfasst: 15.02.2007, 08:10
von redlabour
firestarter hat geschrieben:
DirectoryIndex portal.php

Setze dies in eine htaccess in deinem rootverzeichnis - E voilà!
Das bringt doch nichts wenn jemand die portal.php direkt ansteuert und dies bringt mir zur PR Bündelung ja auch nichts.

Und /forum/ habe ich bereits per https://www.vBSEO.com komplett umgeleitet.

Ich habe es nun erstmal mit :

Code: Alles auswählen

RewriteEngine on
RewriteRule ^portal.php$ / [L,R=301]
gemacht. Damit ist die portal.php schonmal umgeleitet.

Aber wie muss ich es für www. und index.php? machen ?

Verfasst: 15.02.2007, 08:35
von firestarter
und wieso benennst du die portal.php dann nicht einfach in index.php um und passt die Links an?

Verfasst: 15.02.2007, 09:15
von redlabour
firestarter hat geschrieben:und wieso benennst du die portal.php dann jicht einfach in index.php um und passt die Links an?
Lies bitte nochmal meine Frage. Du scheinst mein Problem nicht im Ansatz zu verstehen. Ob Portal oder Index ist egal.

Verfasst: 15.02.2007, 11:29
von chris21
Ehrlich gesagt: ich habe gerade Deine Frage gelesen und die ist etwas missverständlich:

1. Möglichkeit: die hast eine existente Datei portal.php, an die auch Parameter angehängt werden können, willst aber, dass beim Aufruf der Domain.de ohne angehängte Datei gleich die portal.php geladen wird. Um den PR zu bündeln, soll dann die portal.php nicht mehr direkt aufgerufen werden.

Dufür musst Du mehrere Schritte durchgehen:

1 .htaccess anweisen, die portal.php als DirectoryIndex zu nehmen (siehe oben).

DirectoryIndex portal.php

2. dann in die Datei portal.php sowie - falls vorhanden - auch in die index.php ganz am Anfang z.B. folgenden Code einfügen:

Code: Alles auswählen

$indexdatei = $_SERVER["REQUEST_URI"];
$abfrage = $_SERVER["QUERY_STRING"];
if($indexdatei == "/portal.php?".$abfrage."")
{
header("HTTP/1.1 301 Moved Permanently");
header("Status: 301 Moved Permanently");
header("Location: http://www.domain.tld/?$abfrage");
header("Connection: close");
exit();
}
elseif($indexdatei == "/portal.php" || $indexdatei == "/portal.php?")
{
header("HTTP/1.1 301 Moved Permanently");
header("Status: 301 Moved Permanently");
header("Location: http://www.domain.tld/");
header("Connection: close");
exit();
} 
Dadurch wird aus domain.tld/portal.php oder domain.tld/portal.php? domain.tld, aus domain.tld/portal.php?irgendwas=irgendwie domain.tld/?irgendwas=irgendwie

Für die index.php ersetzt Du im Code jeweils das portal.php durch index.php

Für das Problem mit www und ohne www:

schaue hier:

https://www.abakus-internet-marketing.d ... -7439.html

Verfasst: 15.02.2007, 12:57
von redlabour
Perfekt danke ! :)

Allerdings kleiner Tippfehler musste bereinigt werden :

Code: Alles auswählen

$indexdatei = $_SERVER["REQUEST_URI"]; 
$abfrage = $_SERVER["QUERY_STRING"]; 
if($indexdatei == "/portal.php?".$abfrage."") 
{ 
header("HTTP/1.1 301 Moved Permanently"); 
header("Status: 301 Moved Permanently"); 
header("Location: http://www.domain.tld/$abfrage"); 
header("Connection: close"); 
exit(); 
} 
elseif($indexdatei == "/portal.php" || $indexdatei == "/portal.php?") 
{ 
header("HTTP/1.1 301 Moved Permanently"); 
header("Status: 301 Moved Permanently"); 
header("Location: http://www.domain.tld/"); 
header("Connection: close"); 
exit(); 
} 
Bei -> header("Location: https://www.domain.tld/$abfrage"); war ein ? zuviel drin. ;)

Verfasst: 16.02.2007, 09:33
von _player
Hallo Jungs,
habe Gestern die Befehle für mod_rewrite ein wenig gerlernt und es funktioniert schon ganz gut.
Ich mache bisher per .htaccess folgendes

Code: Alles auswählen

RewriteEngine on
ErrorDocument 404 http://www.domain.de
RewriteRule index.html$ index.php
RewriteRule wohnungssuche.html$ index.php?main=wohnung&content=suchen
Also wird alles als HTML Datei verlinkt und das läuft auch.

Aber ich möchte gerne das der Benutzer bei eingabe irgendeiner .php Datei (Beispiel Aufruf index.php) die Meldung bekommt das die Datei nicht existiert oder eben ErrorDocument 404.

Kann mir jemand helfen?

Verfasst: 16.02.2007, 11:26
von chris21
[quote=redlabour]
Bei -> header("Location: https://www.domain.tld/$abfrage"); war ein ? zuviel drin.
[/code]

Hm, komisch. Was steht denn bei Dir im $_SERVER["QUERY_STRING"] (und damit $abfrage)?

Also, ich benötige dort ein "?" Sonst würde aus domain.tld/portal.php?irgendwas=irgendwie ja domain.tld/irgendwas=irgendwie werden, was zu einem 404 führen würde.

Verfasst: 17.09.2007, 13:31
von skype
empfehlt ihr die 301er mit php oder htaccess zu realisieren. leite www.source-shop.de auf source-werbeartikel.com mit ner 301er php hat aber leider noch keine wirkung gezeigt.