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

Nginx correspondant à l'URL avec un point d'interrogation

J'ai maintenant besoin de faire de l'optimisation SEO. Le code utilise le framework Yii. Maintenant, je dois changer certains des liens longs d'origine en liens courts. J'ai deux idées pour cela. La première est de faire un saut 301 en PHP, et l'autre est Lorsque vous faites 301 dans le fichier de configuration nginx, le problème se pose : je n'arrive pas à le faire correspondre à l'emplacement du fichier de configuration nginx. Par exemple, le lien d'origine est xxx.bbb.ccc/index.php?r=pc ? /index/index, utilisez maintenant xxx .bbb.ccc/index, comment faire correspondre cela ?

为情所困为情所困2692 Il y a quelques jours1137

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

  • 黄舟

    黄舟2017-07-01 09:14:11

    Selon vous, cela ne devrait-il pas être pour visiter xxx.bbb.ccc/index -> xxx.bbb.ccc/index.php?r=pc/index/index ?

    Dans ce cas, il n'est pas nécessaire de faire correspondre ?.

    Écrivez simplement rewrite les règles

    rewrite ^/index$ /index.php?r=pc/index/index last;

    Si c'est l'inverse, utilisez if pour le juger

    Par exemple :

    server {
        server_name test.dev;
        location / {
            if ($request_uri ~ '/index.php\?r=pc/index/index') {
                return 301 http://test.dev/index;
            }
        }
    }

    Résultats des tests :

    > curl -I 'http://test.dev/index.php?r=pc/index/index'
    
    HTTP/1.1 301 Moved Permanently
    Server: nginx/1.10.3
    Date: Fri, 30 Jun 2017 09:04:12 GMT
    Content-Type: text/html
    Content-Length: 185
    Connection: keep-alive
    Location: http://test.dev/index

    répondre
    0
  • Annulerrépondre