Nginx correspondant à l'URL avec un point d'interrogation
为情所困
为情所困 2017-07-01 09:12:11
0
1
1151

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 ?

为情所困
为情所困

répondre à tous(1)
黄舟

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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal