php - Nginx 重写:将 .php 文件重定向到它的相关重写 url?
问题描述
我有 nginx 重写配置如下:
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location / {
try_files $uri $uri.php $uri/ =404;
rewrite ^/about/$ /about.php;
}
/about/
这个 url 工作正常,并显示about.php
文件的内容。
但是我希望当有人尝试about.php
直接访问时,他们应该得到任何一个,/about/
或者如果相关的文件 url 重写不存在,那么他们应该得到 404。
请帮助我如何做到这一点?
解决方案
这可能对你有用。
location /about {
try_files $uri $uri $uri/ @extensionless-php;
}
location @extensionless-php {
rewrite ^(.*)$ $1.php last;
}
参考:https ://www.digitalocean.com/community/questions/how-to-remove-php-using-nginx
推荐阅读
- java - OneToOne 与复合 PK 与相关表中的列
- swift - 如何在 SwiftUI 中给 DatePicker 一个分钟间隔
- docusignapi - Docusign API 日期和名称选项卡不显示
- reactjs - 当您使用 React 生成静态标记时,是否不需要“key”道具?
- c++ - 如何对 unsigned long int 进行位掩码?
- java - Java 类尽管是新的……;未调用
- php - PHP从帖子中获取JsonArray
- javascript - 地图对象具有旧值
- mongoose - 使用 Mongoose,我无法从另一个集合的数组中提取 ObjectId
- visual-studio - 如何在页面和数据库上动态反映对 Razor 页面模型的更改?