# mod_rewrite \.htm?bla=test



## Wolfsbein (23. August 2004)

Hallo


```
# 1. Regel
RewriteRule ^_(hsgb)_(de|en)\.htm$ index\.php?topic=$1&lang=$2 [L]
RewriteRule ^_(hsgb)_(de|en)\.htm?hsgbPage=([0-9]+)$ index\.php?topic=$1&lang=$2&hsgbPage=$3 [L]
```
Die erste Zeile geht. Wenn ich aber sowas aufrufe:
_hsgb_de.htm?hsgbPage=1
dann gibt mir print_r($_GET) das gleich aus wei bei
_hsgb_de.htm
und der Seiteninhalt ist dann natürlich auch der Gleiche. Da ich jetzt schon einige Zeit rumprobiere und nicht weiterkomme frage ich mich, ob das überhaupt so geht? Vielen Dank


----------



## Wolfsbein (25. August 2004)

Ich habe jetzt in Erfahrung gebracht, dass es irgendwie mit RewriteCond zusammenhängten soll. Aus der Beschreibung auf apache.org werde ich aber nicht schlau.


----------



## Sven Mintel (25. August 2004)

Per RewriteCond kann man Bedingungen für das Ausführen einer RewriteRule festlegen.


```
RewriteCond  %{QUERY_STRING} ^(hsgbPage=[0-9]+)$ [OR]
RewriteCond  %{QUERY_STRING} ^$

RewriteRule ^_(hsgb)_(de|en)\.htm$ /index.php?topic=$1&lang=$2&%{QUERY_STRING} [L]
```



Das oben liest sich folgendermassen:
Wenn der QUERY_STRING(diese Variable steht auch unter mod_rewrite zur Verfügung)....
also wenn er *hsgbPage=Ziffer* enthält, [oder] *leer* ist.....

...erst dann wird die RewriteRule angewandt.
Der QUERY_STRING wird in der RewriteRule nicht mehr untersucht...der stimmt ja schon, er wird zum Schluss einfach ans Ende rangehangen.
Fertig


----------



## Wolfsbein (25. August 2004)

Wunderbar. EIn kleiner Fehler war noch drin :
Es muss index\.php heißen.


----------



## Sven Mintel (25. August 2004)

Wozu denn? Im Replacement musst du die Modifier etc. nicht escapen


----------



## Wolfsbein (25. August 2004)

Du hast Recht. Aber der Slash vor index.htm muss zumindest bei mir weg. Mit geht es nämlich nicht.


----------



## low-group (29. August 2004)

ich nutze mal einfach diesen Thread mit  

ich habe in meiner htaccess dieses stehen:


```
RewriteRule ^thread,(.*),(.*)\.html$   thread.php?threadid=$1&goto=$2   [L]
RewriteRule ^thread,(.*)\.html$   thread.php?threadid=$1   [L]
RewriteRule ^thread\.html   thread.php   [L]
```

wenn ich jetzt z.b. eine thread.html oder thread,5.html aufrufe bleibt dieser html-Link auch in der Adresszeile drinne, sowie ich aber jetzt thread,5,lastpost.html ausfrufe, ändert sich der Link beim Aufruf in einen PHP-Link.

zu sehen hier  unten bei letzte Themen.

Der Link dazu wird so aufgerufen: thread,$thread[threadid],lastpost.html und soll zu thread.php?threadid=$thread[threadid]&goto=lastpost verweisen, aber der html-Link soll bleiben. Wo liegt da der Fehler?


----------

