httpd-users-de mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Georg Markus Dittrich <gor...@yahoo.de>
Subject mod_rewrite f. PHP skripte, soll mit sessions und encoded vars funktionieren ...
Date Tue, 19 Nov 2002 16:29:21 GMT

hallo,

sitze jetzt schon seit ewigkeiten an folgendem problem und freue mich über jegliche hilfe
(Apache 1.3 neueste version auf redhat linux):

Ich verwende folgende RewriteRule:

^([^_]*)_([^_]*)_([^_]*)_([^_]*)_([^_]*)\.html $1\.php?category=$2\&item=$3\&shop_lang=$4\&type=$5

für URL´s mit dem muster http://www.maskworld.com.exxs.net/display-department_152_0_german_beard.html


und sie in das muster http://www.maskworld.com.exxs.net/display-department.php?category=152&item=0&shop_lang=german&type=beard


umzuwandeln. so sieht es so aus als würden statische seiten aufgerufen werden -> suchmaschinen.


Um aber sessions ohne cookies und die weitergabe der sessiondaten per url-encode zu ermöglichen,
wollte ich die rule eigentlich so verwenden (weil ja php dann automatisch hinter xxxx.html
per fragezeichen die sessionid und die urlencodes ranghängt):

RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_([^_]*)\.html\??(.*) $1\.php?category=$2\&item=$3\&shop_lang=$4\&type=$5\&$6

nur funktioniert sie nicht. Der hase liegt im fragezeichen begraben, welches ja den start
des php variablenblocks anzeigt, also des query_strings. Da ich aber die url ja selbst schon
rewrite habe ich ja schon hinter dem skriptnamen das fragezeichen in meiner rewriteten url.
Deshalb versuche ich jetzt mit der rewrite rule das fragezeichen herauszufiltern, und die
restlichen variablen (was auch immer da kommen mag) hinten nach einem weiteren &-Zeichen
anzuhängen ($6).

Allerdings scheint mod_rewrite da ein generelles problem mit den fragezeichen bzw. deren erkennung
zu haben. Eigentlich müsste man das ? escapen (also -> \?), das zweite ? ist dann als
0 oder 1 gedacht (also für den fall, daß sessionid da ist oder eben auch nicht) - funktioniert
auch nicht in geschweiften klammern.

Anhand der logs konnte ich jetzt absehen, daß egal wie man die rule definiert der server
bei url aufrufen wie z.b. http://www.maskworld.com.exxs.net/display-department_152_0_german_beard.html?shit=5
den rewrite mit der uri http://www.maskworld.com.exxs.net/display-department_152_0_german_beard.html
initialisiert. Es wird also alles hinter dem fragezeichen ignoriert? Warum das denn? Warum
ist sowas nirgendwo dokumentiert? Bzw. kannst ich das beeinflussen? Es muss doch machbar sein,
daß php seine zusätzlichen variablen hinten dranhängen kann; OT: könnte man alternativ
php dazu überreden als variablenabgrenzer hinter der .php endung der files ein & zu akzeptieren?
/OT Und würde das dann vom server/mod_rewrite nicht ignoriert?

wie ihr seht, habe ich mich schon eine weile damit beschäftigt, aber ich komme da nicht weiter
- any help is greatly appreciated. 

vielen dank - gorg.



---------------------------------
Gesendet von http://mail.yahoo.de.
3,5% Zinsen ab dem 1. EUR. Das Tagesgeldkonto mit den besten ZinsenTäglich verfügbar.
 Kostenlose Kontoführung. Jetzt eröffnen! Extrakonto bei der DiBa.
Mime
View raw message