Maison  >  Questions et réponses  >  le corps du texte

Problème avec la redirection nginx avec les paramètres

Eh bien, je viens de changer le mot-clé en aaabbb.
Ce qui suit signifie que lorsque je visite /aaabbb/anime, je demande en fait /ab_anime.php

location /aaabbb/ {
        rewrite ^/aaabbb/(\w+)$ /ab_.php last;
        rewrite "/aaabbb/(\w+)/(\d{1,2})$" /aaabbb/?id=? permanent;
    }

Ensuite, je veux faire en sorte que lorsque je clique dessus pour la première fois, les paramètres soient inclus en même temps, je ne puisse pas le voir dans la barre d'adresse. Ensuite, à chaque fois que je l'actualise, là. il n'y aura pas de paramètres.

J'ai donc vérifié que s'il n'y a pas de paramètre, il y a un point d'interrogation après, mais j'ai trouvé ça inutile.
Est-ce parce que j'ai moi-même dépensé 1 $?id=2$ ?
Seuls les paramètres ajoutés à la fin de la barre d'adresse disparaîtront. Cependant, cela ne servait à rien.

Je viens de revoir ça

    rewrite  ^/test.php  /new  permanent;       //重写向带参数的地址

    rewrite  ^/test.php  /new?  permanent;      //重定向后不带参数

    rewrite  ^/test.php   /new?id=$arg_id?  permanent;    //重定向后带指定的参数

Je ne sais même pas quoi faire... Dois-je en écrire un autre et utiliser $arg ? ? ?

滿天的星座滿天的星座2713 Il y a quelques jours843

répondre à tous(1)je répondrai

  • 習慣沉默

    習慣沉默2017-05-16 17:17:56

    Je pense que la personne qui pose la question a compliqué le problème.
    Bien sûr, je ne suis pas sûr de vraiment comprendre les besoins de la personne qui pose la question. Je vais essayer d'élaborer comme suit :

    1. Demande utilisateur/aaabbb/anime

    2. nginx analyse correctement /aaabbb.php?id=anime et renvoie le contenu A à l'utilisateur

    3. La barre d'adresse de l'utilisateur lit /aaabbb et apprécie le contenu A

    4. L'utilisateur actualise le navigateur, dirigé vers /aaabbb, et profite du contenu B de /aaabbb.php. (Ou continuez à lire le contenu A)

    Il y a un bug ici. Lorsque la requête est /aaabbb/anime, la barre d'adresse deviendra au maximum /aaabbb/anime#xxxxxx. Celle avant # ne changera pas, et celle après # sera un hachage. Si vous souhaitez modifier la barre d'adresse en /aaabbb, vous devez disposer d'une action de redirection.

    Mes réflexions sont les suivantes : (Si vous adoptez la réponse, veuillez commenter le contenu incorrect dans ma solution)

    1. la stratégie de réécriture de Nginx est rewrite ^/aaabbb/(w+)$ /redirect.php?target= last;

    2. redirect.php écrit la cible dans la session et renvoie la redirection vers /aaabbb (la barre d'adresse peut et ne peut être modifiée que via cette méthode)

    3. /aaabbb/ Accédez à index.php, lisez la cible dans la session, effacez-la (ou ne l'effacez pas) et appelez le fichier php correspondant pour renvoyer le contenu.

    4. Lors de l'actualisation de /aaabbb, accédez à index.php et répondez également aux demandes en fonction de la session.

    répondre
    0
  • Annulerrépondre