翻译的url路径查询nginx的参数

时间:2016-11-18 18:16:09

标签: .htaccess nginx

网址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;
}

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块来处理静态内容。