Redirection si le paramètre de requête existe sur nginx
Je suis à l'aide de forums IPB. J'ai réussi à utiliser les urls avec nginx serveur conf modifications. Cependant j'ai besoin de rediriger mon ancien forum de l'Url d'un redirecteur fichier php pour obtenir l'url actuelle d'un sujet (ou d'un forum, membres, etc.). Par exemple: si l'url est comme /forum/index.php?board=23
, je vais faire une redirection vers redirector.php .
C'est ma configuration actuelle pour être en mesure d'utiliser les URLs sur IPB
location /forum {
try_files $uri $uri//forum/index.php;
rewrite ^ /forum/index.php? last;
}
Quand je fais insérer une instruction if à l'intérieur d'un emplacement de ce bloc, comme le suivant, je ne peux pas récupérer le paramètre de requête "conseil d'administration".
location /forum {
if ($arg_board != "") {
rewrite ^ /redirector.php?q=$arg_board break;
}
try_files $uri $uri//forum/index.php;
rewrite ^ /forum/index.php? last;
}
Ce qui manque ici?
OriginalL'auteur emregecer | 2012-05-21
Vous devez vous connecter pour publier un commentaire.
Votre problème est lié à l'utilisation de la pause à la place de dernier. À partir de la documentation:
http://wiki.nginx.org/HttpRewriteModule#rewrite
Puisque vous n'avez pas de définir un gestionnaire pour l' /redirector au sein de l' /forum emplacement du bloc, de votre si(..) { rewrite } ne pas faire ce que vous voulez. Faire cette pause un dernier, de sorte que la réécriture peut déclencher l'emplacement approprié bloc.
OriginalL'auteur Matthew Franglen