PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [H] mod_rewrite URL umschreiben



kalachnikov
28.07.2010, 19:43
Hallo,
ich versuche schon seit einigen Minuten eine URL mittels mod_rewrite umzuschreiben. Keine Angst, es funktioniert alles bis auf die eine Regel.
Es geht um so eine URL:


?z27=11&option=shop

die ich gerne in dieser Form haben würde


11-shop.html

Realisieren wollte ich es damit (weiß net was falsch daran sein soll..)


Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)-([-a-zA-Z0-9]+)\.html$ ?z27=$1&option=$2 [L]

AlterHacker
28.07.2010, 19:47
RewriteRule ^([0-9]+)\-([a-zA-Z0-9\-]+)\.html$ ?z27=$1&option=$2 [L]

Versuch das mal. Ich bin mir nicht sicher, ob man das - escapen muss,
aber Falsch isses auf keinen Fall. und dann die erste Zahl ist immer ein Int?
Dann doch einfach [0-9] statt . nehmen. und + statt *, da sie ja immer vorhanden sein sollte.



MfG

kalachnikov
28.07.2010, 19:55
funzt irgendwie bei mir nicht.
Ja, die erste Zahl ist immer ein Int. Hab irgendwie gedacht, dass ([0-9]+) nur Zahlen von 0-9 einschließt... Bei mir kommen auch Zahlen wie 24 und 45 vor..

err000r
28.07.2010, 20:02
funzt irgendwie bei mir nicht.
Hab irgendwie gedacht, dass ([0-9]+) nur Zahlen von 0-9 einschließt... Bei mir kommen auch Zahlen wie 24 und 45 vor..

wenn ich das lese, dann weiss ich dass regex nicht dein spezialgebiet ist ;)

also, recht hast deine klasse schliesst zahlen von 0-9 ein, daneben steht aber ein plus. das steht für eine anzahl von 1 oder mehr zeichen.


ansonsten sollte es stimmen
EDIT: so, - muss nicht escaped werden, hat keine "zusatzbedeutung"

kalachnikov
28.07.2010, 20:05
ich weiß, deswegen habe ich geschrieben "habe gedacht".

//Edit
kann mir jemand erklären warum es mit einem "." funktioniert und mit einem "-" nicht?


RewriteRule ^([0-9]+)\.([a-zA-Z0-9]+)\.html$ ?z27=$1&option=$2 [L]

kalachnikov
28.07.2010, 21:12
kann man eig. auch "?z27=11&option=shop" in "shop.html" umschreiben?

err000r
02.08.2010, 20:38
klar kannst du. du kannst aus so ziemlich allem alles machen.
solange deine regex passen und du die rewrite rules richtig machst