mod_rewrite Frage

homer092

Lieutenant
Registriert
Aug. 2005
Beiträge
613
Hallo!

Kann mir jemand helfen bei einem Problem mit mod_rewrite? es geht darum, dass ja meistens
www. ... .com/1
in
www. ... .com/seite.php?a=1
umgewandelt wird.

Ich hätte es aber gern so:

www. ... .com/1/index.php

soll umgewandelt werden zu:

www. ... .com/index.php?a=1

wie macht man sowas?

Vielen Dank :-)
 
Code:
RewriteEngine On
RewriteRule ^([^/]*)/index\.php$ /index.php?a=$1 [L]

Bitte gut testen, ist nicht mein Fachgebiet.
 
Ich hätte es jetzt ähnlich geschrieben, wie Du es angegeben hast...
Code:
Options +FollowSymlinks
RewriteEngine on

RewriteRule ^([0-9]+)/index.html$ /index.php?a=$1
Ich hoffe mal, es geht Dir im allgemeinen auch nur um Zahlen, sonst müsste das alles ein wenig anders aussehen :) Ich kämpfe mich selbst auch wieder durch das Thema und habe dafür folgende Seiten vor mir,
-> http://www.modrewrite.de/mod-rewrite/
-> http://archiv.webfire.biz/mod-rewrite.html
-> http://corz.org/serv/tricks/htaccess2.php

vielleicht hilft Dir das auch ein wenig. Ich versuche nämlich auch aus ein oder zwei Dingen schlau zu werden :)

Code:
RewriteRule ^test_([a-z]+).html$ ausgabe.php
RewriteRule ^test_([a-z]*).html$ ausgabe.php
Wo ist zwischen diesen beiden der Unterschied? Einmal mit Plus und einmal mit Stern?! Ich möchte nämlich eine Übergabe haben, in der nur Buchstaben erlaubt sind und nur ein minus Zeichen.

Gruß, Domi
 
Das Plus bedeutet, dass mindestens ein Zeichen (aus der Klasse [a-z]) vorhanden sein muss, der Stern greift auch bei leeren Zeichenfolgen. In diesem Fall würde "test_.html" von der zweiten Zeile erkannt, von der ersten aber nicht.

Minuszeichen sind in beiden Fällen aber nicht erlaubt, das müsste man noch anders schreiben.
 
NullPointer schrieb:
Das Plus bedeutet, dass mindestens ein Zeichen (aus der Klasse [a-z]) vorhanden sein muss
Herrlich.. schöne Aussage. Jetzt verstehe ich auch endlich mal den Unterschied.

NullPointer schrieb:
Minuszeichen sind in beiden Fällen aber nicht erlaubt, das müsste man noch anders schreiben.
Joa, ich hatte schon mal Beispiele gesucht, aber nur das übliche gefunden...
Code:
RewriteRule ^test_([a-z]+)-([a-z]+).html$ ausgabe.php
So müsste ich aber bei der Ausgabe $1 und $2 ansprechen. Ich glaube durch ein wenig hin und her spielen habe ich aber nun den Befehl gefunden, der benötigt wird...
Code:
RewriteRule ^test_([a-z]+\-[a-z]+).html$ ausgabe.php
So muss ich nur noch $1 ansprechen, für die erste Klammer. Der Parameter der dann nämlich übergeben wird, enthält nämlich genau ein Minuszeichen :D
 
Zurück
Oben