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

如何在Nginx中移除URL的.php/.html后缀并添加末尾斜杠?

在Nginx中实现URL后缀移除并添加末尾斜杠的方案

要实现你需求的URL美化,我们可以通过Nginx的rewrite指令分两步完成:永久重定向旧URL到新格式,以及内部映射新URL到实际文件。以下是具体的配置方案,你可以把这些规则加到你的Nginx server块中:

完整配置示例

server {
    listen 80;
    server_name www.website.com;
    root /var/www/your-website-root; # 替换成你的网站根目录路径

    # 1. 永久重定向带.html/.php的URL到带末尾斜杠的新URL
    rewrite ^/(.*)\.html$ /$1/ permanent;
    rewrite ^/(.*)\.php$ /$1/ permanent;

    # 2. 内部映射带末尾斜杠的URL到实际的.html/.php文件
    rewrite ^/(.*)/$ /$1.html break;
    rewrite ^/(.*)/$ /$1.php break;

    # 其他常规配置(比如index、error页面等)
    index index.html index.php;
    location ~ \.php$ {
        # 这里保留你原有的PHP处理配置,比如fastcgi_pass等
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

配置解释

  • 永久重定向规则:

    • rewrite ^/(.*)\.html$ /$1/ permanent;:匹配所有以.html结尾的URL,捕获.html前的部分(比如faq),然后301永久重定向到/faq/。这种重定向对SEO友好,能告诉搜索引擎更新索引地址。
    • 同理,第二条规则处理.php后缀的URL,将/where-to-buy.php重定向到/where-to-buy/。
  • 内部映射规则:

    • rewrite ^/(.*)/$ /$1.html break;:当用户访问/faq/时,Nginx内部会把请求映射到faq.html文件,浏览器地址栏会保持/faq/不变,不会暴露实际的文件后缀。
    • 第二条规则处理PHP文件的映射,确保访问/where-to-buy/时,实际加载的是where-to-buy.php文件。

注意事项

  1. 记得把root指令中的路径替换成你实际的网站根目录。
  2. 如果你的PHP环境有特殊配置(比如不同的FPM端口或socket路径),保留原有的location ~ \.php$块内容即可,不用修改这部分。
  3. 配置完成后,执行sudo systemctl restart nginx重启Nginx服务,让新规则生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:08:46