
本文旨在解决在XAMPP本地环境中,使用.htaccess文件去除URL中的.php后缀失败的问题。通常,这段代码在服务器上运行良好,但在本地XAMPP环境中却不起作用。本文将详细介绍如何启用mod_rewrite模块,这是解决此问题的关键步骤,并提供相关的配置指导,确保在本地开发环境中也能实现URL的简化。
在服务器环境中,通过.htaccess文件配置URL重写规则,可以实现去除.php后缀,从而使URL更加简洁友好。然而,在XAMPP本地开发环境中,即使配置了相同的.htaccess文件,也可能无法正常工作。这通常是因为mod_rewrite模块未启用。mod_rewrite是Apache服务器的一个强大模块,用于实现URL的重写和重定向。
以下是在XAMPP中启用mod_rewrite模块的步骤:
1. 找到 httpd.conf 文件:
立即学习“PHP免费学习笔记(深入)”;
httpd.conf 文件是 Apache 服务器的主要配置文件。它通常位于 XAMPP 安装目录下的 apache/conf/ 文件夹中。例如,如果你的 XAMPP 安装在 C:\xampp 目录下,那么 httpd.conf 文件的路径可能是 C:\xampp\apache\conf\httpd.conf。
2. 编辑 httpd.conf 文件:
使用文本编辑器(如 Notepad++、Sublime Text 或 VS Code)打开 httpd.conf 文件。
3. 启用 mod_rewrite 模块:
在 httpd.conf 文件中搜索以下行:
#LoadModule rewrite_module modules/mod_rewrite.so
将该行前面的 # 符号移除,取消注释,使其变为:
LoadModule rewrite_module modules/mod_rewrite.so
注意: 如果找不到该行,可以手动添加 LoadModule rewrite_module modules/mod_rewrite.so 到 httpd.conf 文件中。 确保将这行代码添加到 LoadModule 相关的部分。
4. 配置 AllowOverride 指令:
AllowOverride 指令控制着 .htaccess 文件是否可以覆盖主配置文件的设置。 为了使 .htaccess 文件中的重写规则生效,需要将 AllowOverride 设置为 All。
在 httpd.conf 文件中搜索包含
Options Indexes FollowSymLinks Includes ExecCGI AllowOverride None Require all granted
将 AllowOverride None 修改为 AllowOverride All:
Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted
注意: 请根据你的实际网站根目录修改
5. 保存并重启 Apache 服务器:
保存对 httpd.conf 文件的修改,并重启 XAMPP 中的 Apache 服务器。 这将使新的配置生效。
6. 验证 .htaccess 文件:
在你的网站根目录下创建一个名为 .htaccess 的文件(如果它不存在)。 将以下代码添加到 .htaccess 文件中:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*[^/])/?$ $1.php [L]这段代码的作用是:
- RewriteEngine On: 启用 URL 重写引擎。
- RewriteCond %{REQUEST_FILENAME} !-d: 检查请求的文件名是否不是一个目录。
- RewriteCond %{REQUEST_FILENAME}\.php -f: 检查请求的文件名加上 .php 后是否是一个存在的文件。
- RewriteRule ^(.*[^/])/?$ $1.php [L]: 将不包含斜杠结尾的URL重写为添加 .php 后缀的形式。 [L] 标志表示这是最后一条规则。
注意事项:
- 确保你的.htaccess文件位于正确的网站根目录下。
- 在修改任何配置文件之前,建议备份原始文件,以便在出现问题时可以恢复。
- 重启Apache服务器后,如果仍然无法正常工作,请检查Apache的错误日志,以获取更多调试信息。 错误日志通常位于XAMPP安装目录下的 apache/logs/ 文件夹中。
总结:
通过启用 mod_rewrite 模块并将 AllowOverride 指令设置为 All,你可以在 XAMPP 本地环境中成功地使用 .htaccess 文件来去除 URL 中的 .php 后缀。 遵循上述步骤,你就可以在本地开发环境中获得与服务器环境一致的 URL 重写体验。 确保在部署到生产环境之前,在本地环境中彻底测试你的 .htaccess 文件。











