宝塔Nginx伪静态隐藏.php后缀
在宝塔面板中,通过Nginx伪静态规则实现隐藏.php
后缀且不触发文件下载的步骤如下:
步骤 1:登录宝塔面板,进入网站设置
- 打开宝塔面板,进入「网站」管理界面。
- 找到目标网站,点击右侧的「设置」。
- 选择「伪静态」选项卡。
步骤 2:配置伪静态规则
在伪静态输入框中填入以下规则:
location / {
try_files $uri $uri/ @php_rewrite;
}
location @php_rewrite {
if (-f $request_filename.php) {
rewrite ^/(.*)$ /$1.php last;
}
return 404;
}
规则解释:
try_files
优先检查原始URI是否存在,若不存在则转给@php_rewrite
处理。@php_rewrite
会检查是否存在对应的.php
文件,存在则重写,否则返回404,避免循环错误。
步骤 3:确保PHP解析正常
- 点击「网站设置」中的「PHP版本」,确认已选择正确的PHP版本。
- 测试直接访问
.php
文件(如https://svip.sdbj.top/jiexi.php
),确保能正常执行而非下载。若出现下载,需检查PHP-FPM配置是否正确。
步骤 4:测试访问
- 访问
https://svip.sdbj.top/jiexi
,应显示与.php
文件相同的内容。 - 若出现404,检查服务器是否存在
jiexi.php
文件,或查看Nginx错误日志(路径:/www/wwwlogs/域名.error.log
)排查问题。
补充配置(可选)
若需支持路径中的参数传递(如 jiexi/123
),修改规则为:
location / {
try_files $uri $uri/ @php_rewrite;
}
location @php_rewrite {
if (-f $request_filename.php) {
rewrite ^/(.*)$ /$1.php?$args last;
}
# 处理路径参数,如 /jiexi/123 → jiexi.php?param=123
if (!-e $request_filename) {
rewrite ^/([^/]+)/?(.*)$ /$1.php?param=$2 last;
}
return 404;
}
注意事项
- 清除浏览器缓存:避免旧缓存影响测试结果。
- 检查文件权限:确保
.php
文件有可读权限(通常权限设置为644)。 - 禁用重名目录:若存在名为
jiexi
的目录,Nginx会优先访问目录,导致规则失效,需删除或重命名。
通过以上步骤,即可实现无后缀访问PHP文件,同时确保正常执行不触发下载。
版权申明
本文系作者 @拾点笔记 原创发布在拾点笔记-技术笔记与工具集合分享站点。未经许可,禁止转载。
暂无评论数据