nginx: Query String von / entfernen

  • Thread starter Thread starter eJunkie
  • Start date Start date

E

eJunkie

Guest
Liebe nginx-Experten,

ich habe heute den halben Tag damit "verschwendet", wenige Regeln vom Apache auf nginx umzuschreiben. Die Standard-Regeln sind kein Problem, allerdings sind Query Strings sehr wohl ein Problem - für mich.

Bis jetzt habe ich eigentlich alles hinbekommen. Nur noch folgende Weiterleitung fehlt.

"domain.de/?query=foobar" auf "domain.de/" leiten.

Ich habe schon folgendes versucht:

Code:
location / {
if($args ~ ".*query.*") { rewrite ^ /? permanent; }
}

ODER

Code:
location / {
if($arg_query !~ "") { rewrite ^/? permanent; }
}

Vielleicht kann mir ja wer helfen... so langsam verliere ich die Geduld und Lust.

Lg
 
Last edited by a moderator:
1.) if is evil:
http://wiki.nginx.org/IfIsEvil

In Deinem Fall sollte es kein Problem geben, aber nur wenn Du neben dem if nichts anderes in dem location Block hast. Das wollte ich nur allgemein erwähnen.

2.) Du willst auf die Startseite nur dann umleiten, wenn das Key "query" in der URL vor kommt?

Dann sollte das gehen:
Code:
if ($args ~ query=) {
	rewrite ^ http://$host? permanent;
}

Bitte beachte das Gleichheitszeichen, sonst leitest Du alles um, auch wenn es im Value steht ;)

Wenn es nicht geht, dann setz es vor location / und nicht in den Block.
 
Last edited by a moderator:

Back
Top