重写后NGINX错误的URL

时间:2015-08-13 16:52:28

标签: php nginx rewrite

我正在重写一个URL以摆脱令人讨厌的GET参数。 我的意图是将“index.php?do=show&id=1”重写为“/show/1

但是,“重定向”/show/保留在网址中。因此/index.php会自动变为/show/index.php

我的配置有什么问题?

    server {
        listen       80;

        server_name  xxxxxx.de www.xxxxxx.de;
        root /var/www/xxxxxx/;
        index index.php index.html index.htm;

        location / {
                try_files $uri $uri/ =404;
                include  /etc/nginx/mime.types;
                if (!-e $request_filename){
                        rewrite ^/show/(.*)$ /index.php?do=show&id=$1 last; break;
                }
        }

        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;

        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

找到解决方案:将HREF从index.php更改为/index.php - 现在一切正常。

0 个答案:

没有答案