首页  >  文章  >  后端开发  >  如何从 NGINX 中的 URL 中删除 .php 和 .html 扩展名?

如何从 NGINX 中的 URL 中删除 .php 和 .html 扩展名?

Patricia Arquette
Patricia Arquette原创
2024-11-24 03:53:09302浏览

How to Remove .php and .html Extensions from URLs in NGINX?

从 NGINX 中的 URL 中删除 .php 和 .html 扩展名

解决显示没有 .php 或 .html 的干净 URL 的问题扩展,您可以在 nginx 配置中实现以下配置file.

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

此配置通过首先检查请求的 URI 来实现所需的结果。如果 URI 存在,则按原样显示。如果不存在,它将检查扩展名为 .html 的 URI。最后,如果 URI 和带有 .html 扩展名的 URI 都不存在,它将重写 URI 以添加 .php 扩展名并尝试显示该文件。

通过添加此配置,Nginx 将:

  1. 检查 http://www.mydomain.com/indexhtml http://www.mydomain.com/indexhtml.html。
  2. 检查 http://www.mydomain.com/indexphp 为 http://www.mydomain.com/indexphp.php。
  3. 如果indexhtml.html和indexphp.php都不存在,则将indexhtml重写为indexhtml.php,将indexphp重写为indexphp.php,

将此配置添加到文件后,重新启动 Nginx,您的 URL 应该干净地显示,没有扩展名。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn