You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nginx中移除URL地址中的.php后缀

配置修改方案

你需要对现有/etc/nginx/sites-available/default文件做三处调整:

1. 修改location /匹配规则

将原有location /块替换为如下内容:

location / {
    # 优先匹配真实存在的文件、目录,无匹配则进入php重写逻辑
    try_files $uri $uri/ @rewrite-php;
    # 访问带.php后缀的地址时自动301跳转到无后缀地址,避免重复内容
    if ($request_uri ~ ^/(.*)\.php(\?.*)?$) {
        return 301 /$1$is_args$args;
    }
}

2. 新增php重写规则块

在location /块之后新增如下命名匹配块:

location @rewrite-php {
    rewrite ^/(.*)$ /$1.php last;
}

3. 验证配置并生效

原有处理php请求的location ~ \.php$块无需调整,所有配置修改完成后执行以下操作:

  • 执行nginx -t测试配置语法是否正确,确认返回成功提示后再进行下一步
  • 执行systemctl reload nginx重载Nginx配置,规则即可生效

注意:规则生效后,访问不带后缀的路径时需要对应根目录下存在同名.php文件,比如访问/test会自动匹配/var/www/public/test.php文件。

内容的提问来源于stack exchange,提问作者Elyas Behroozizade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:30:00