| | | | |
| |||||||
| Server, Hosting und Workstations Server-Konfigurationsdateien (.htaccess/httpd.conf) und Arbeiten auf Serverebene |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| Neuer Benutzer Registriert seit: 04.01.2011
Beiträge: 22
PHP-Kenntnisse: Fortgeschritten ![]() | Hallo, ich habe nun eine Zeit lang die Sufu gequält und leider nicht genau das Problem gefunden, was ich habe. (nur ähnliche) Auf meiner Webseite sind sehr sehr sehr viele Parameter an den URL dran, was ich unterbinden wollte, um es alles SOE freundlicher zu machen. nehmen wir uns erstmals das Beispiel der nicht so tollen URL vor. http://www.example.com/index.php?tex...=34&comment=32 Um ehrlich zu sein, nicht so das wahre. daher habe ich mit der RewriteRule experimentiert und http://www.example.com/34/32.html erschaffen. Nun mein Problem, denn jetzt ist die seite unter beiden URLs erreichbar, was sehr kontraproduktiv ist, da die unschönen Links jetzt schon zu haufe im google sind. Daher dachte ich daran eine 301 Weiterleitung zu dem schönen link zu machen. sprich google stößt auf http://www.example.com/index.php?textseite=34 und wir zu http://www.example.com/34.html geschickt dazu hatte ich folgende idee 1. überprüfe das du NICHT auf einer 0-n.html datei bist 2. überprüfe ob der pararmeter textseite einen wert hat 3. schreibe die url dann um und schicke google und alle anderen die ggf verlinkt sind weiter dazu habe ich mir mal was zusammengebastelt Code: RewriteCond %{REQUEST_URI} !^([0-9]+).html$
RewriteCond %{QUERY_STRING} ^textseite=([0-9]+)$
RewriteRule ^.*$ http://www.example.com/%1.html? [L,R=301]
und zwar ändert er die URL richtig um und der 301 vermerk stimmt wie ich auf ner webseite testenlassen habe auch. jedoch wird aus irgendeinem Grunde diese Umleitung nie beendet und wiederholt sich endlos, was zu folge hat, dass ich mit einem umleitungsfehler bestraft werde. möglicher weise ist es auch ein Folgefehler aus anderen Angaben der htaccess, daher hier ein Ausschnitt aus der htacess welche mit Umleitungen zu tun hat Code: # Automatisch www vor URL schreiben
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
# Regeln
RewriteRule ^1/28/([^/]*)\.html$ index.php?textseite=28&comment=$1 [L]
RewriteRule ^([^/]*)/([^/]*)\.html$ index.php?textseite=$1&seite=$2 [L]
RewriteRule ^([^/]*)\.html$ index.php?textseite=$1 [L]
# Umleiten auf schöne URL
RewriteCond %{REQUEST_URI} !^([0-9]+).html$
RewriteCond %{QUERY_STRING} ^textseite=([0-9]+)$
RewriteRule ^.*$ http://www.example.com/%1.html? [L,R=301]
wäre euch sehr sehr sehr Zu dank verpflichtetet, wenn mir jemand helfen könnte, denn bei vielen anderen Foren habe ich seit schon fast 2 Wochen keine Antwort bekommen. Grüße -- Ich |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer Registriert seit: 01.09.2010
Beiträge: 4.563
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() | wenn sich da mal deine beiden rewrite-Rules nicht gegenseitig in die Quere kommen .. einerseits musst du ja irgendwo aus www.example.com/34/32.html wieder deinen eigentlichen Aufruf machen (weil deine Seite ja wirklich mit www.example.com/index.php?page=34&action=32 aufgerufen wird ) und gleichzeitig willst du die alten google-Links die ja schon die richtige Struktur haben umleiten auf deine "neuen schönen Links" - und diese Umgeleiteten Links müssen dann doch wieder zurückgewandelt werden .... also dreht sich mod_rewrite im Kreise und formt die Url mal in die eine Richtung, mal in die andere Richtung....
__________________ "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Fehler: Umleitungsfehler | marckannisgut | PHP Tipps 2010 | 8 | 19.11.2010 15:12 |