Nginx的conf如何从$ uri删除主要的斜杠

我的Nginx conf文件:

location / { try_files $uri $uri/ /index.php?url=$uri; } ## PHP conf in case it's relevant location ~ \.php$ { fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; include /etc/nginx/fastcgi.conf; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } 

尝试以下url: http://example.org/login : http://example.org/login

预期的行为:

http://example.org/index.php?url=login

实际行为:

http://example.org/index.php?url=/login

使用一个命名的位置和一个内部重写。 例如:

 location / { try_files $uri $uri/ @rewrite; } location @rewrite { rewrite ^/(.*)$ /index.php?url=$1 last; } 

请参阅此文档了解更多