网址https://example.com/profile/chico
必须被nginx理解为:
https://example.com/profile/?username=chico
(目前有效的网址)。
https://example.com/profile/
目前也有效,因为它目前解析为index.php,没有用户名参数。
我目前有
location /profile/ {
index /profile/index.php;
}
网上有很多不同的东西,我没有具体找到我需要的东西。
也试过
location /profile/ {
rewrite ^/profile/(.*)$ /profile/?username=$1;
}
答案 0 :(得分:2)
尝试:
location /profile/ {
try_files $uri @rewrite;
}
location @rewrite {
rewrite ^/profile/(.+)$ /profile/index.php?username=$1 last;
rewrite ^ /profile/index.php last;
}
如果第一个rewrite
匹配,则忽略第二个rewrite
。在使用.php
扩展名重写URI后,处理将移至另一个location
块。
有关详情,请参阅this document。
编辑:添加了try_files
块来处理静态内容。