You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下.htaccess隐藏.php扩展名失效的解决求助

解决Linux环境下.htaccess隐藏PHP扩展名失效的问题

我之前也碰到过跨环境迁移后.htaccess规则失效的情况,你的代码逻辑本身没问题,但Linux下Apache对配置和权限的要求更严格,咱们一步步排查修复:

1. 修正.htaccess里的语法错误

你原来的代码里有个明显的语法问题,在保护.htaccess的段落中:

denying from all

要改成:

deny from all

这个小错误在Windows环境下可能被Apache宽松处理,但Linux下会导致规则解析失败,直接影响后续Rewrite规则的生效。

2. 确保mod_rewrite模块已启用

Linux下Apache默认通常没开启rewrite模块,执行以下命令启用并重启服务:

sudo a2enmod rewrite
sudo systemctl restart apache2

3. 调整虚拟主机的AllowOverride配置

默认情况下,Apache虚拟主机配置里的AllowOverride可能设为None,这会直接忽略.htaccess文件的所有规则。你需要修改站点的虚拟主机配置文件(一般在/etc/apache2/sites-available/your-site.conf),找到对应站点的<Directory>段落,把AllowOverride None改成AllowOverride All:

<Directory /var/www/your-site-root/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

修改后重启Apache生效:

sudo systemctl restart apache2

4. 检查.htaccess文件权限

Linux下文件权限不正确会导致Apache无法读取.htaccess,执行以下命令设置正确的权限:

sudo chmod 644 /var/www/your-site-root/.htaccess
sudo chown www-data:www-data /var/www/your-site-root/.htaccess

(记得把/var/www/your-site-root/替换成你实际的网站根目录)

完成以上步骤后,你的Rewrite规则应该就能正常工作了,访问不带.php的URL会自动映射到对应的PHP文件。

内容的提问来源于stack exchange,提问作者Dev Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:04:31