Seite 1 von 1
.php -> .html Weiterleitung
Verfasst: 03.07.2010, 12:47
von feaR
Moin ich nochmal.
Habe ein neues Problem.
Nachdem ich nun meine URL-Struktur von
auf
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:
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
Verfasst:
von
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
Verfasst: 03.07.2010, 13:05
von Synonym
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]
Verfasst: 03.07.2010, 23:03
von feaR
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
Verfasst:
von
SEO Consulting bei
ABAKUS Internet Marketing Erfahrung seit 2002
- persönliche Betreuung
- individuelle Beratung
- kompetente Umsetzung
Jetzt anfragen:
0511 / 300325-0.
Verfasst: 04.07.2010, 08:08
von Synonym
Na also. Wie gesagt, ein wenig Handbuch wäre sicherlich nicht schlecht, dann musste Du auch nicht stundenlang suchen.
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]
Verfasst: 04.07.2010, 13:08
von feaR
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...

Verfasst: 04.07.2010, 15:02
von Synonym
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]
Verfasst: 04.07.2010, 15:59
von feaR
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!