Zur Navigation

Anfragen umleiten und Anfragen als gelöscht melden [2]

11 musikliebhaber11

Jetzt habe ich die htaccess um die Rewrites erweitert. Zunächst ging es, aber jetzt auf einmal (nach Einfügung des unteren Rewrite-Bereichs) bekomme ich bei jeder alten URL immer nur 500 Internal Server Error ausgeworfen :(

Woran kann das liegen?

Das sind meine ganzen Rewrites:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{QUERY_STRING} cd=([0-9]+)
RewriteRule ^html/cd_infos(_oben|_unten)?(_eng)?\.php$ http://www.testdomain.de/catalogsearch/result/?q=%1 [R=301,L]301,L]
RewriteCond %{QUERY_STRING} coID=10
RewriteRule ^shop/shop_content\.php$ http://www.testdomain.de/abc [R=301,L]
RewriteCond %{QUERY_STRING} coID=15
RewriteRule ^shop/shop_content\.php$ http://www.testdomain.de/cde [R=301,L]
RewriteCond %{QUERY_STRING} coID=16
RewriteRule ^shop/shop_content\.php$ http://www.testdomain.de/fgh [R=301,L]
RewriteCond %{QUERY_STRING} coID=22
RewriteRule ^shop/shop_content\.php$ http://www.testdomain.de/ijk [R=301,L]
RewriteCond %{QUERY_STRING} coID=24
RewriteRule ^shop/shop_content\.php$ http://www.testdomain.de/lmn [R=301,L]
RewriteCond %{QUERY_STRING} coID=25
RewriteRule ^shop/shop_content\.php$ http://www.testdomain.de/opq [R=301,L]
RewriteCond %{QUERY_STRING} coID=28
RewriteRule ^shop/shop_content\.php$ http://www.testdomain.de/rst [R=301,L]
RewriteCond %{QUERY_STRING} coID=34
RewriteRule ^shop/shop_content\.php$ http://www.testdomain.de/uvw/ [R=301,L]
RewriteCond %{QUERY_STRING} coID=36
RewriteRule ^shop/shop_content\.php$ http://www.testdomain.de/xyz [R=301,L]
RewriteCond %{QUERY_STRING} coID=40
RewriteRule ^shop/shop_content\.php$ http://www.testdomain.de/rew [R=301,L]
RewriteCond %{QUERY_STRING} coID=42
RewriteRule ^shop/shop_content\.php$ http://www.testdomain.de/htz [R=301,L]
RewriteCond %{QUERY_STRING} coID=3
RewriteRule ^shop/shop_content\.php$ http://www.testdomain.de/oht [R=301,L]
RewriteCond %{QUERY_STRING} coID=4
RewriteRule ^shop/shop_content\.php$ http://www.testdomain.de/hjgff [R=301,L]
RewriteCond %{QUERY_STRING} coID=7
RewriteRule ^shop/shop_content\.php$ http://www.testdomain.de/ghd [R=301,L]
RewriteCond %{QUERY_STRING} coID=8
RewriteRule ^shop/shop_content\.php$ http://www.testdomain.de/jkgf [R=301,L]
RewriteCond %{QUERY_STRING} coID=9
RewriteRule ^shop/shop_content\.php$ http://www.testdomain.de/jkgf [R=301,L]
RewriteCond %{QUERY_STRING} cPath=
RewriteRule ^shop/index\.php$ http://www.testdomain.de/hgdo [R=301,L]
RewriteRule ^shop/product_info\.php$ - [G]
RewriteRule ^shop/advanced_search_result\.php$ - [G]
RewriteRule ^shop/popup_image\.php$ - [G]
RewriteRule ^shop/logoff\.php$ - [G]
RewriteRule ^shop/account\.php$ - [G]
RewriteRule ^shop/shopping_cart\.php$ - [G]
RewriteRule ^shop/checkout_shipping\.php$ - [G]
RewriteEngine Off

27.02.2012 13:30

12 Jörg Kruse

Zunächst ging es, aber jetzt auf einmal (nach Einfügung des unteren Rewrite-Bereichs) bekomme ich bei jeder alten URL immer nur 500 Internal Server Error ausgeworfen :(

Was genau davon ist denn der "untere Rewrite-Bereich"?

27.02.2012 13:46

13 Jörg Kruse

Zitat von musikliebhaber11
Nur ein Problem:

RewriteCond %{QUERY_STRING} cd=([A-Za-z0-9]+)
RewriteRule ^html/cd_infos(_oben|_unten)?(_eng)?\.php$ http://www.testdomain.de/catalogsearch/result/?q=%1 [R=301,L]

geht nicht, wenn ich bei dem Query_STRING z.B.

ABCD123456 habe und eigentlich bei der Weiterleitung NUR die Zahlen 0-9 "angeben" möchte.

Also Query_String-Ergebnis ist z.B.

ABCD123456

Angezeigt werden auf

http://www.testdomain.de/catalogsearch/result/?q=%1

soll aber nur 123456 (ohne ABCD).

%1 bezieht sich auf den geklammerten Ausruck der RewriteCond. Folglich musst du einfach nur die Buchstaben aus der Klammer rausnehmen

cd=[A-Za-z]*([0-9]+)

Und - ganz wichtig (habe ich gerade gemerkt):

Wenn Query_String-Ergebnis z.B. 005 ist oder 003, dann wird

bei

http://www.testdomain.de/catalogsearch/result/?q=%1

nur nach "5" oder "3" und nicht (was richtig wäre) nach "005" oder "003" gesucht.

Gibt es da eine Möglichkeit, das zu korrigieren?

Willst du führende Nullen entfernen? das würde ich dann mit diesem Muster probieren:

cd=[A-Za-z]*0*([0-9]+)

27.02.2012 13:52

14 musikliebhaber11

Nein, er gibt mir bei der bisherigen A-Za-z0-9 Abfrage bei %1 "nur" "1", "2"...."9" aus wenn im Query_String 005 steht.

Also bräuchte ich etwas nach dem Muster:

WENN Query_String" = 005
DANN %1 behält die führenden Nullen!

Zweitens:

Der 500-er Fehler kommt immer, sobald ich die Rewrites hinzufüge.

Wenn ich diese RewriteConditions habe:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

klappt alles.

Sobald ich auch nur eine weitere Bedingung hinzufüge, z.B.

RewriteCond %{QUERY_STRING} cd=([0-9]+)
RewriteRule ^html/cd_infos(_oben|_unten)?(_eng)?\.php$ http://www.testdomain.de/catalogsearch/result/?q=%1 [R=301,L]301,L]

kommt IMMER (egal welche Zeile ich mir - siehe oben) aus den ganzen Rewrites herauspicke

die 500er Fehlermeldung.
Und ich komme dann nirgendwo mehr (wenn ich im Browser die website ohne alles eingebe, Form: www.testdomain.de) hin.
Selbst bei www.testdomain.de kommt dann der 500er Fehler :(

Danke für eine Hilfe!

ml

27.02.2012 14:16

15 Jörg Kruse

Nein, er gibt mir bei der bisherigen A-Za-z0-9 Abfrage bei %1 "nur" "1", "2"...."9" aus wenn im Query_String 005 steht.

Wer ist denn "er"? sind die Nullen in der Ziel-URL nicht enthalten?

Also bräuchte ich etwas nach dem Muster:

WENN Query_String" = 005
DANN %1 behält die führenden Nullen!

mod_rewrite entfernt von sich aus keine Nullen. Gib mal eine Beispiel-URL, die du aufrufst, und die URL, die nach der Weiterleitung in der Adresszeile des Browsers steht

Sobald ich auch nur eine weitere Bedingung hinzufüge, z.B.

RewriteCond %{QUERY_STRING} cd=([0-9]+)
RewriteRule ^html/cd_infos(_oben|_unten)?(_eng)?\.php$ http://www.testdomain.de/catalogsearch/result/?q=%1 [R=301,L]301,L]

kommt IMMER (egal welche Zeile ich mir - siehe oben) aus den ganzen Rewrites herauspicke

die 500er Fehlermeldung.

Die Rule enthält auch einen Fehler

[R=301,L]301,L]

27.02.2012 15:14 | geändert: 27.02.2012 15:15

16 musikliebhaber11

Jetzt funktioniert alles, 1000 Dank!!!!

Super-Lösung :)

ml

27.02.2012 16:15

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]