redirect 301 ohne Querystring?

Bububoomt

ohne Vertrauen
ID: 10361
L
28 April 2006
19.666
769
Ich versuche gerade eine URL auf eine andere umzuleiten, dabei soll einfach aus

seita::250.html seiteb::890.html werden.

Leider hängt er mir immer noch ?products_id=250 an
Kann das an einer weiter unten stehenden Regel liegen?
Oder dürfte er da gar nicht mehr ankommen?
 
steht in der .htaccess:

Code:
Redirect Permanent seita::250.html seiteb::890.html
weiter unten steht:
Code:
RewriteRule (.*)::(.+)\.html$ /product_info.php?products_id=$2 [qsappend,L]
Kann aber ja nicht dran liegen oder?

Habe irgendwo gefunden mann soll das machen, also ? ranhängen.
Code:
Redirect Permanent seita::250.html seiteb::890.html?

Dann klappt es soweit, das der Parameter nicht angehängt wird, aber dann bleibt dennoch ? stehen.
 
Zuletzt bearbeitet:
Das Beispiel kommt mir bekannt vor, wenn ich mich recht entsinne ging es da um die Verschleierung der Verzeichnisstruktur des Servers. Dazu mußten die URLs umgeschrieben werden, aus "/drucker/samsung/ml1670.html" wurde so etwas wie "/products.php?g=drucker&h=samsung&m=ml1670" zusammengesetzt. Das ? im Ersetzungsausdruck ist dabei als Trennzeichen (script?parameter) mit von der Partie, Du kannst es weglassen.
 
die Rewriterule ist eigentlich die die immer gilt.

Nur gibt es durch Änderungen jetzt einige Seiten nicht mehr, die wurden ersetzt.

daher sollte z.b. 250 auf 890 weitergeleitet werden und dann soll erst die Rewriteregel gelten.

Also damit google weiß, aha das ist eine alte Seite, die muss ich nun ersetzen.
 
https://my.opera.com/GreyWyvern/blog/2007/09/12/apache-mod-rewrite (ist auf englisch), interessant ist der Teil "order of execution". mod_rewrite wird VOR mod_alias ausgeführt (egal in welcher Reihenfolge es in der .htaccess steht). D.h. du kannst deine Umschreibungen nicht mit mod_alias machen. Aber sehr wohl mit mod_rewrite:
Code:
RewriteRule  ^/seita::250.html              /seiteb::890.html            [R=301,L]
Das ganze sollte dann vor dem anderen rewrite stehen.