您现在的位置是:知识 >>正文
php后缀
知识85人已围观
简介打开网站根目录,看到一个文件叫 index.php,另一个叫 index.html。服务器默认先读哪个?很多人以为先读 .html。错了。Apache 的 DirectoryIndex 指令如果写成 ...
打开网站根目录,看到一个文件叫 index.php,另一个叫 index.html。服务器默认先读哪个?很多人以为先读 .html。错了。Apache 的 DirectoryIndex 指令如果写成 index.html index.php,那 .html 优先。但绝大多数 PHP 虚拟主机默认配置是 index.php index.html。所以 .php 后缀的文件被优先执行。这个细节直接影响你上传的静态首页会不会被动态页面覆盖。
我2015年接手过一个企业站,首页是 index.html,后来加了新闻系统,生成了 index.php。结果首页永远显示新闻列表,原来的企业介绍页面死活出不来。客户急得打电话,说“网站被黑了”。其实就是后缀优先级问题。把 index.html 改名为 index_static.html,问题消失。后缀不只是文件名的一部分,它决定了服务器怎么处理这个文件。
.php 后缀告诉 Apache 或 Nginx:这个文件先交给 PHP 解释器。解释器把 <?php ... ?> 之间的代码跑一遍,把输出结果和 HTML 拼在一起,再发给浏览器。浏览器看到的永远是纯 HTML,它根本不知道 PHP 存在。你右键查看网页源代码,找不到任何 <?php。这是最基础的隔离。但很多人写 PHP 时忘了这一点,在 PHP 文件里直接写 HTML,然后奇怪为什么循环里的变量没生效。因为那段 HTML 根本不在 PHP 标签内。
后缀还能被伪造。有人上传一个文件叫 shell.php.jpg。如果服务器配置不当,比如 AddHandler application/x-httpd-php .jpg,那这个图片文件里的 PHP 代码就会被执行。这是经典漏洞。我见过一个论坛,允许上传头像,后端只检查了 MIME 类型是 image/jpeg,却没检查后缀。攻击者上传 avatar.php,MIME 伪造为 image/jpeg,然后直接访问 /uploads/avatar.php,拿到 webshell。修复方法很简单:禁止上传目录执行 PHP。在 .htaccess 里写 php_flag engine off,或者用 Nginx 的 location ~* /uploads/.*\.php$ { deny all; }。
另一个常见问题:URL 里带 .php 好不好?从 SEO 角度,example.com/about.php 和 example.com/about 哪个好?后者更干净。但实现后者需要 URL 重写。Apache 用 mod_rewrite,Nginx 用 try_files。我自己的博客就把所有 .php 后缀去掉了。方法是在 nginx.conf 里加 location / { try_files $uri $uri/ $uri.php?$query_string; }。这样访问 /contact 时,Nginx 会去找 contact.php。但注意,如果目录下同时存在 contact 目录和 contact.php 文件,优先匹配目录。这个坑我踩过,后来把目录名改了。
还有安全层面的 .php 后缀。很多老教程让你把配置文件命名为 config.php,然后放在 Web 根目录下。这很危险。如果 PHP 解析器挂了,或者服务器配置错误,config.php 会被当纯文本下载,数据库密码直接泄露。正确做法是把配置文件放在 Web 根目录之外,比如 /var/www/config/config.php,然后在 index.php 里用 require '../config/config.php'。后缀没变,但位置变了,安全性完全不同。
最后说一个观察。现在很多新项目用 .php 后缀越来越少。Laravel 的路由全写在 routes/web.php 里,但对外暴露的 URL 没有 .php。WordPress 也是,永久链接可以设成 /2024/01/hello-world/。但底层文件依然是 index.php、wp-load.php。后缀从“用户可见”变成了“内部约定”。你打开 WordPress 的 wp-admin 目录,全是 .php 文件。它们不直接对外,而是通过 admin.php 统一入口。这是一种进步。后缀不再暴露技术栈,也不再是 URL 的一部分。但理解 .php 后缀怎么工作,仍然是你排查 500 错误、文件上传漏洞、URL 重写问题的基本功。
Tags:
上一篇:哪个网盘可以存些违规视频
下一篇:子域名挖掘工具
相关文章
外卖撒漏
知识外卖撒漏,这事儿我遇见过不下十回。最离谱的一次,汤水顺着塑料袋缝淌出来,滴在电梯地板上,像一串深褐色的省略号。我蹲下来擦,手指头沾上油,那股子麻辣味钻进指甲缝里,洗了三遍还留着。 点外卖的人大概都懂那 ...
【知识】
阅读更多Payload是什么意思
知识我盯着屏幕上那个红色的"Payload"报错,第无数次怀疑自己是不是选错了行。那是2019年,我在一家小公司做前端,老板要求所有接口请求都走一个自研的网关。那天下午,我花了四个小时排查一个文件上传失败 ...
【知识】
阅读更多360网站安全卫士
知识凌晨三点,某电商平台的技术群里炸了锅。运维老张发来一连串截图,后台数据库被注入了上万条垃圾数据,用户密码字段全部变成了乱码。攻击者留下的后门文件就藏在上传目录里,文件名伪装成一张正常的产品图片。这不是 ...
【知识】
阅读更多