首页 > 后端开发 > php教程 > 如何从 NGINX 中的 URL 中删除文件扩展名?

如何从 NGINX 中的 URL 中删除文件扩展名?

Patricia Arquette
发布: 2024-11-17 14:02:02
原创
267 人浏览过

How to Remove File Extensions from URLs in NGINX?

从 NGINX 中的 URL 中删除文件扩展名

为了呈现更清晰的 URL 结构,您需要删除“.php”和“.html” " 网站上所有网址的扩展名。

最初,您使用以下配置成功删除了“.html”扩展名:

location / {
    root   html;
    index  index.html index.htm index.php;
    try_files $uri.html $uri/ =404; 
}
登录后复制

但是,此配置不适用于“.html”扩展名。 php”扩展名。要解决此问题,您可以按如下方式修改 NGINX 配置文件:

location / {
    try_files $uri $uri.html $uri/ @extensionless-php;
    index index.html index.htm index.php;
}

location ~ \.php$ {
    try_files $uri =404;
}

location @extensionless-php {
    rewrite ^(.*)$ .php last;
}
登录后复制

此配置现在将从所有 URL 中删除“.php”和“.html”扩展名:

  • try_files $uri $uri.html $uri/ 检查原始 URL、带有“.html”扩展名的 URL 以及作为目录的 URL。
  • 如果这些文件都不存在,则它将请求转发到 @extensionless-php 位置。
  • try_files $uri =404;在位置 ~ .php$ 块中,对于以“.php”结尾的 URL 显式返回 404 错误。
  • 最后,@extensionless-php 位置会重写 URL 以添加“.php”扩展名(如果不存在)尚不存在。

进行这些更改后重新启动 NGINX,您的 URL 现在将显示,不带文件扩展名。

以上是如何从 NGINX 中的 URL 中删除文件扩展名?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板