httpd-users-de mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sebastian Kayser <mls+apache-users...@skayser.de>
Subject Re: und noch einer
Date Thu, 27 Jul 2006 17:50:15 GMT
* Marcus Franke <marcus.franke@gmx.net> wrote:
> Ich brauche die Zahl, die in der Variablen name übergeben wird
> 
> RewriteCond %{QUERY_STRING}	^name=([0-9]+)
> RewriteRule ^altes.php$	http://www.dom.tld/pfad/$1.html [L,R=301]
> 
> Doch, was passiert, wenn ich den URL im alten Format aufrufe?
> Er wird auf www.dom.tld/pfad/.html?name=11111 umgeschrieben..
> 
> Als wäre in $1 nichts gefunden worden, und der Inhalt von
> QUERY_STRING wird noch mal fröhlich an den neuen URL angeklebt.

Du musst %1 anstatt $1 verwenden, um auf die Referenz auf das Muster
der Condition zuzugreifen.

RewriteCond %{QUERY_STRING}   ^name=([0-9]+)
RewriteRule ^altes.php$   http://www.dom.tld/pfad/%1.html [L,R=301]

> Ich habe für den regex auch schon (.*) genommen, selbes Spiel.
> 
> Ich verstehe es einfach nicht mehr, selbst wenn ich $1 gar
> nicht angebe in der RewriteRule wird mir der Inhalt von
> QUERY_STRING ausgegeben.

Du meinst, auch ohne Dein Zutun wird der ursprüngliche QUERY_STRING an
die neue URL angehängt? Das ist normales Verhalten.

Falls Du das nicht willst, siehe auch dazu die mod_rewrite Dokumentation
zur Direktive "RewriteRule" 

,----  Note: Query String
| [...] When you want to erase an existing query string, end the
| substitution string with just a question mark. [...]
`----

- Sebastian

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Mime
View raw message