RewriteRule greift nicht

Alles, was den Apache betrifft, kann hier besprochen werden.

RewriteRule greift nicht

Postby wiesel82 » 06. November 2012 12:12

Hallo zusammen,
ich möchte einzelne Items auf einen anderen Server umleiten. Dabei habe 2 Wege auf ein Items zu kommen.
Die URL kann wie folgt aussehen:

http://server1.de/item/itemId:123456:4
http://server1.de/item/itemId:123456
http://server1.de/viewItemFullPage.jsp?itemId=objectItem:123456
http://server1.de/viewItemFullPage.jsp?itemId=objectItem:123456:4

Die Zahl hinter dem letzten Doppelpunkt kann variabel sein.

Somit habe ich mir um alle 4 Fälle zu abzudecken folgende Regeln überlegt, die das beschriebene Item auf server2.de umleiten sollen.

RewriteRule /item/itemId:123456(.*)$ http://server2.de/item/itemId:123456$1
RewriteRule /viewItemFullPage.jsp?itemId=objectItem:123456(.*)$ http://server2.de/viewItemFullPage.jsp?itemId=objectItem:123456$1

Die erste Regeln funktioniert so wie ich gerne hätte, doch die zweite Regel greift gar nicht, wenn ich folgende URLs aufrufe.

http://server1.de/viewItemFullPage.jsp?itemId=objectItem:123456
http://server1.de/viewItemFullPage.jsp?itemId=objectItem:123456:4

Was ist an der zweiten RewriteRule nur falsch?

Viele Grüße

Wiesel
wiesel82
 
Posts: 7
Joined: 20. May 2010 12:41

Re: RewriteRule greift nicht

Postby Nobbie » 06. November 2012 13:18

wiesel82 wrote:Was ist an der zweiten RewriteRule nur falsch?


Die Angabe es Query Strings (der Teil nach dem Fragezeichen). Der ist nicht Bestandteil der URL in der RewriteRule. Das funktioniert so nicht, darüber hinaus ist ? sowieso ein Metazeichen der Regular Expressions und müßte escaped werden, weil es eine Spezialbedeutung hat.

Um den Query String auszuwerten, muss man mit RewriteCond die Variable QUERY_STRING auswerten. Ein Beispiel findest Du hier:

http://www.simonecarletti.com/blog/2009 ... ry-string/
Nobbie
 
Posts: 13171
Joined: 09. March 2008 13:04

Re: RewriteRule greift nicht

Postby wiesel82 » 06. November 2012 13:38

D.h. es sollte eigentlich hiermit funktionieren.

RewriteRule /viewItemFullPage\.jsp\?itemId=objectItem:123456(.*)$ http://server2.de/viewItemFullPage\.jsp\?itemId=objectItem:123456$1
wiesel82
 
Posts: 7
Joined: 20. May 2010 12:41

Re: RewriteRule greift nicht

Postby Nobbie » 06. November 2012 13:57

wiesel82 wrote:D.h. es sollte eigentlich hiermit funktionieren.


Nein.

Nach wie vor wird der Query String gar nicht überreicht (vergiss meine zusätzlich Bemerkung in Sachen Fragezeichen - das war nur ergänzende Randbemerkung).
Nobbie
 
Posts: 13171
Joined: 09. March 2008 13:04

Re: RewriteRule greift nicht

Postby wiesel82 » 06. November 2012 14:43

Ok jetzt gehts wie folgt.

RewriteCond %{QUERY_STRING} ^itemId=objectItem:123456(.*)$
RewriteRule /viewItemFullPage\.jsp$ http://server2.de/viewItemFullPage\.jsp$1

Danke Gruß
Wiesel
wiesel82
 
Posts: 7
Joined: 20. May 2010 12:41


Return to Apache

Who is online

Users browsing this forum: No registered users and 27 guests