必须先取消隐藏已知文件类型的扩展名才能修改.php后缀;windows需在文件夹选项中取消勾选该选项,macos需在访达偏好设置中勾选“显示所有文件扩展名”,且重命名时须按enter键编辑扩展名。

Windows 资源管理器里改不了 .php 后缀?先关掉“隐藏已知文件类型的扩展名”
默认 Windows 会隐藏常见扩展名(比如 .txt、.jpg、.php),你看到的文件名可能是 index,实际却是 index.php —— 这时候直接重命名只会变成 index.php.php,根本改不掉旧后缀。
解决方法很简单:打开任意文件夹 → 顶部菜单点「查看」→ 勾选「文件扩展名」(注意不是「隐藏的项目」);如果没看到该选项,先点「选项」→「更改文件夹和搜索选项」→「查看」选项卡 → 取消勾选「隐藏已知文件类型的扩展名」→ 点「确定」。
- 改完设置后,所有文件都会显示完整后缀,比如
index.html、config.ini - 此时右键重命名,可以直接删掉旧后缀、输入
.php(例如把script.txt改成script.php) - 系统会弹窗提醒“如果改变文件扩展名,可能会导致文件不可用”,点「是」即可(前提是确认内容确实是 PHP 代码)
Mac 上怎么让 Finder 显示并修改 .php 后缀
macOS 默认也不显示扩展名,而且 Finder 的重命名逻辑更保守:即使显示了后缀,双击改名时仍可能自动补全或拒绝修改。
必须手动开启显示,并用「回车」而非「点击空白处」确认:
立即学习“PHP免费学习笔记(深入)”;
- 打开 Finder →「访达」菜单 →「偏好设置」→「高级」→ 勾选「显示所有文件扩展名」
- 选中文件 → 按
Enter(不是鼠标点)开始重命名 → 光标会落在扩展名前,可直接删旧后缀、输入.php - 按
Return确认;若提示“将更改扩展名”,点「继续」 - 不推荐用鼠标点击文件名其他位置再编辑——那样只会重命名主体,不会触碰扩展名
改完后 .php 文件不执行?检查 Web 服务器是否识别该扩展名
文件后缀改成 .php 只是第一步。如果放在本地双击打开,或丢进 Apache/Nginx 但页面显示源码、不解析,说明服务器没配置处理 .php。
- Apache 需确保
LoadModule php_module已启用,且有类似AddType application/x-httpd-php .php的配置 - Nginx 需在
server块里配location ~ \.php$ { ... }并指向 PHP-FPM - 纯静态 HTTP 服务(如 Python 的
python -m http.server)根本不支持 PHP,改再多次后缀也没用 - Windows 自带的 IIS 需单独安装 PHP 并注册处理器,否则
.php文件会被当成下载项
批量改一堆文件为 .php?别手点,用命令行更稳
比如你有一批 page1.txt、page2.txt……想全改成 .php,手动太容易漏或错。
Windows PowerShell(管理员不用,普通用户即可):
Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace '\.txt$', '.php' }
macOS / Linux 终端(当前目录下执行):
for f in *.txt; do mv "$f" "${f%.txt}.php"; done
- 这两条命令都只匹配末尾的
.txt,不会误伤mytext.txt.bak这类文件 - 执行前建议先
ls *.txt或Get-ChildItem *.txt确认目标范围 - 如果原文件没有扩展名(比如叫
index),需用mv index index.php单独处理,通配符不生效
后缀这事看着小,但改错一次可能让整个脚本被当文本下载,或者触发服务器安全拦截。最常被忽略的是:改完后没验证 PHP 是否真在运行,而不是只盯着文件名看。











