V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
harrisliang
V2EX  ›  NGINX

Nginx 怎么配置访问的 URL 是目录的时候跳转到目录下的 index. PHP 并保留查询参数

  •  
  •   harrisliang · 2020-08-19 23:13:49 +08:00 · 1718 次点击
    这是一个创建于 1339 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我想配置 Nginx 实现当访问的 URL 是目录的时候,例如:

    http://127.0.0.1/modules/sso?param=abcd
    

    此处对应的modules/sso目录是真实存在的,那么请求 URL 变为:

    http://127.0.0.1/modules/sso/index.php?param=abcd
    

    特别的,如果 URL 后面包含斜线,例如:

    http://127.0.0.1/modules/sso/?param=abcd
    

    也应该被正确识别,并重写为含有 index.php 的 URL,我的思路是用try_files来实现,但是测试后并没有得到想要的结果,请问这个应该怎么用 Nginx 来实现呢?

    4 条回复    2020-08-20 02:13:54 +08:00
    Ptu2sha
        1
    Ptu2sha  
       2020-08-19 23:35:59 +08:00
    如果是框架的话 去看下框架的配置 说明 一般就是 if -e file rewrite
    harrisliang
        2
    harrisliang  
    OP
       2020-08-19 23:56:10 +08:00
    @qingdanmo 感谢回复,不是用的框架,完全手写的 php 文件,也参考了几个框架的文档,感觉和我的需求不大一致
    xiri
        3
    xiri  
       2020-08-20 00:12:29 +08:00
    location / {
    index index.php;
    try_files $uri $uri/ /index.php?$query_string;
    }
    ericgui
        4
    ericgui  
       2020-08-20 02:13:54 +08:00
    @xiri +1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   867 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:36 · PVG 05:36 · LAX 14:36 · JFK 17:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.