本地环境.htaccess伪静态规则失效致404错误的解决方法
本地环境.htaccess 404问题修复方案
1. 开启Apache重写模块(mod_rewrite)
- Windows(XAMPP/WAMP)用户:打开Apache的httpd.conf配置文件,找到
#LoadModule rewrite_module modules/mod_rewrite.so这一行,删掉开头的#,保存后重启Apache。 - Linux用户:执行
sudo a2enmod rewrite启用模块,再用sudo systemctl restart apache2重启Apache服务。
2. 允许.htaccess覆盖配置
找到本地站点对应的Apache配置段(虚拟主机文件或httpd.conf里的Directory部分),把AllowOverride None改成AllowOverride All,示例配置如下:
<Directory "/你的本地站点根目录路径"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
改完记得重启Apache。
3. 适配本地站点的目录结构
如果本地站点放在Apache的子目录里(比如http://localhost/你的项目名),需要在.htaccess的RewriteEngine on下面加一行:
RewriteBase /你的项目名/
确保访问的URL和服务器上的结构一致,比如服务器上访问https://thinu-tech-demo.rf.gd/contact,本地就要访问http://localhost/你的项目名/contact。
4. 解决PHP指令的兼容性问题
有些本地环境(比如用PHP-FPM的情况)不支持在.htaccess里写php_value指令,你可以把这些配置移到本地的php.ini文件中:
display_errors = On mbstring.http_input = auto date.timezone = America/New_York
保存后重启Apache和PHP服务。
5. 测试重写规则有效性
可以临时加个测试规则验证:
在.htaccess里加一行RewriteRule ^test$ test.php [NC,L],然后创建一个test.php文件,访问对应路径(比如http://localhost/test),如果能正常打开,说明重写模块和权限配置没问题,再排查原有规则的匹配问题。
内容的提问来源于stack exchange,提问作者user19576314
相关产品推荐
相关产品推荐

