# URL rewrite umgekehrt



## hoctar (6. Februar 2010)

Hallo 
also gleich zum Problem:
wenn man seite.php?id=2 aufruft, soll weitergeleitet werden zu seite/2

ich habe bereits dies hier ausprobiert, leider kein Erfolg

```
RewriteRule seite\.php\?id=([0-9]+)$ /seite/$1 [R=301]
```


----------



## Sven Mintel (6. Februar 2010)

Moin hoctar, 

der QUERY_STRING wird bei mod_rewrite separat von der URL gehandhabt, er steht als Servervariable zur Verfügung, ist aber nicht Bestandteil der URL beim Umschreiben.

Du müsstest vorher eine rewriteCond definieren, und dort eine Referenz auf die ID erzeugen:


```
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$ 
RewriteRule seite\.php$ /seite/%1/? [R=301]
```

Beachte, dass die Referenz aus der rewriteCond mit %n angesprochen wird, im Gegensatz zu Referenzen aus der rewriteRule, welche man ja mit $n anspricht.


----------



## Maik (6. Februar 2010)

Moin,

deine Frage hat  mit PHP direkt recht wenig zu tun, auch wenn die Dateiendung deiner Seiten diesen Namen trägt, denn hier geht's um  Umleitungen mit mod_rewrite, die in der *httpd.conf* oder *.htaccess*-Datei vorgenommen werden.

Von daher ist dein Thema im "Hosting & Webserver"-Forum besser platziert.

mfg Maik


----------



## hoctar (7. Februar 2010)

Danke, die Weiterleitung funktioniert 

Ich habe nun eine weitere rewrite rule, die die url (/seite/2) interpretiert, diese wird aber leider nicht angesprochen.


```
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$ 
RewriteRule ^(.*)/seite\.php$ /seite/%1-$1? [R=301]

RewriteRule /*seite/([0-9]+)-.*$ seite.php?id=$1 [L]
```


----------

