Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

.php -> .html Weiterleitung

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
Neues Thema Antworten
feaR
PostRank 1
PostRank 1
Beiträge: 9
Registriert: 02.07.2010, 18:56

Beitrag von feaR » 03.07.2010, 12:47

Moin ich nochmal.

Habe ein neues Problem.
Nachdem ich nun meine URL-Struktur von

Code: Alles auswählen

/index.php?site=seite
auf

Code: Alles auswählen

/seite.htm
geändert habe, habe sind meine Seiten nun ja über zwei Links zu erreichen.

Nun möchte ich die Zugriffe von /index.php?site=seite auf die entsprechende /seite.htm weiterleiten!

Eine einfache Weiterleitung um zu testen, ob es funktioniert habe ich auch schon gemacht, die folgendermaßen aussieht:

Code: Alles auswählen

RewriteRule ^impressum impressum.html [R=301]
Dadurch werde ich durch Aufrufen von domain.de/impressum/ auf domain.de/impressum.html weitergeleitet.

Dann wollte ich es an meine URL-Struktur anpassen:

Code: Alles auswählen

RewriteRule ^index.php?site=impressum impressum.html [R=301]
funktioniert aber nicht! Der Link bleibt einfach "www.domain.de/index.php?site=impressum"!!

Weiß mir nicht mehr weiter zu helfen und hoffe, dass ihr mir dabei helfen könnt.
Vielen Dank im Voraus.

LG

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 03.07.2010, 13:05

Also manchmal können Handbücher echt nützlich sein....

Parameter (Query-Strings) funktionieren im Pattern der RewriteRule nicht.
What is matched?

The Pattern will initially be matched against the part of the URL after the hostname and port, and before the query string. If you wish to match against the hostname, port, or query string, use a RewriteCond with the %{HTTP_HOST}, %{SERVER_PORT}, or %{QUERY_STRING} variables respectively.
Wenn schon, dann in etwa so (ungetestet):

Code: Alles auswählen

RewriteCond %{QUERY_STRING} ^site=(.*)
RewriteRule ^index\.php /%1.html? [R=301,L]

feaR
PostRank 1
PostRank 1
Beiträge: 9
Registriert: 02.07.2010, 18:56

Beitrag von feaR » 03.07.2010, 23:03

Hi Synonym.

Nach Einfügen deines Vorschlags werden zumindest die .php Dateien zu den .html Dateien weitergeleitet. Einziges Problem dabei ist, dass ich dann ständig einen Umleitungsfehler erhalte.

Habe leider vergessen die bisherige .htaccess im ersten Beitrag hinzuzufügen, das hol ich jetzt mal nach:

Code: Alles auswählen

RewriteEngine On
RewriteBase /
Options +FollowSymLinks
RewriteRule ^(.*)\.html$ index.php?site=$1
RewriteCond %{QUERY_STRING} ^site=(.*)
RewriteRule ^index\.php %1\.html? [R=301,L]
RewriteCond %{HTTP_HOST} ^domain.de$ [NC]
RewriteRule ^(.*) http://www.domain.de/$1 [R=301]
Hab jetz auch schon wieder verschiedene Sachen ausprobiert, allerdings besteht der Umleitungsfehler danach weiterhin, oder die URLs werden nicht weitergeleitet... :-?

LG

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 04.07.2010, 08:08

Na also. Wie gesagt, ein wenig Handbuch wäre sicherlich nicht schlecht, dann musste Du auch nicht stundenlang suchen.

Code: Alles auswählen

RewriteRule ^(.*)\.html$ index.php?site=$1
Das ist die eigentliche sprechende URL und ruft intern die index.php auf. So soll es ja sein.

direkt danach kommt nun das von mir, das die index.php weiterleiten soll.... Merkst Du was? 1. und 2. widersprechen sich so. Suchmaschinenfreundliche URL -> index.php -> index.php weiterleiten -> sumafreundliche URL -> usw....

Mach mal nach der ersten Anweisung ein [L], also

Code: Alles auswählen

RewriteRule ^(.*)\.html$ index.php?site=$1 [L]
Damit der an der Stelle aufhört die htaccess zu durchlaufen, wenn es eine Übereinstimmung gab.

Und der letzte Block sollte eigentlich nach ganz oben....

Ungetestet:

Code: Alles auswählen

RewriteEngine On
RewriteBase /
Options +FollowSymLinks

RewriteCond %{HTTP_HOST} ^domain.de$ [NC]
RewriteRule ^(.*) http://www.domain.de/$1 [R=301,L]

RewriteCond %{QUERY_STRING} ^site=(.*)
RewriteRule ^index\.php %1.html? [R=301,L]

RewriteRule ^(.*)\.html$ index.php?site=$1 [L]

feaR
PostRank 1
PostRank 1
Beiträge: 9
Registriert: 02.07.2010, 18:56

Beitrag von feaR » 04.07.2010, 13:08

Ein L an dem Ende der RewriteRule ^(.*)\.html$ index.php?site=$1 Anweisung hatte ich auch schon probiert... :/

Habs nun auch so angeordnet wie Du, allerdings gibts nach wie vor die Umleitungsfehler... :-?

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 04.07.2010, 15:02

Dann versuche es mal so

Code: Alles auswählen

RewriteEngine On
RewriteBase /
Options +FollowSymLinks

RewriteCond %{HTTP_HOST} ^domain.de$ [NC]
RewriteRule ^(.*) http://www.domain.de/$1 [R=301,L]

RewriteRule ^(.*)\.html$ index.php?site=$1 [L]

RewriteCond %{IS_SUBREQ} =false
RewriteCond %{QUERY_STRING} ^site=(.*)
RewriteRule ^index\.php %1.html? [R=301,L]

feaR
PostRank 1
PostRank 1
Beiträge: 9
Registriert: 02.07.2010, 18:56

Beitrag von feaR » 04.07.2010, 15:59

Funktioniert leider auch nicht... :(
Haste sonst noch ne Idee, wie es klappen könnte?

Edit:
Problem endlich gelöst!

Zur eigentlich Weiterleitung

Code: Alles auswählen

RewriteCond %{QUERY_STRING} ^site=(.*)
RewriteRule ^index\.php %1\.html? [R=301,L]
musste ich oberhalb noch folgende Zeile hinzufügen:

Code: Alles auswählen

RewriteCond %{THE_REQUEST} index\.php\?site=

Danke für die Hilfe, Synonym!

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag