XAMPP环境下.htaccess旧URL重定向失效问题排查
问题分析与解决方案
你的重定向失效并出现404错误,主要有以下几个原因及对应的修复方法:
1. .htaccess 规则匹配路径错误
你将.htaccess放在C:\xampp7\htdocs\dolibarr-old-url目录下,Apache处理该目录下的.htaccess时,匹配的是相对于此目录的请求路径,而非完整的URL路径。
比如访问http://midolibarr.com/dolibarr-old-url/xxxxxxxxxxxxxxxxxxx时,在该目录的.htaccess中,实际需要匹配的路径是xxxxxxxxxxxxxxxxxxx,而非包含dolibarr-old-url/的完整路径。
修复方法:修改dolibarr-old-url目录下的.htaccess内容为:
RewriteEngine On RewriteRule ^(.*)$ /dolibarr/$1 [R=301,NC,L]
2. 未启用mod_rewrite模块
XAMPP默认可能未开启mod_rewrite模块,导致Rewrite规则无法生效。
修复方法:
- 打开XAMPP控制面板,点击Apache的
Config按钮,选择httpd.conf - 找到以下行,去掉开头的
#:#LoadModule rewrite_module modules/mod_rewrite.so - 保存文件后重启Apache服务
3. 未开启AllowOverride权限
Apache默认可能限制了.htaccess的生效权限,导致规则无法被解析。
修复方法:
- 打开
httpd-vhosts.conf,在<VirtualHost *:80>块内添加以下配置:<Directory "C:/xampp7/htdocs/"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> - 保存文件后重启Apache服务
完成以上步骤后,再次访问http://midolibarr.com/dolibarr-old-url/xxxxxxxxxxxxxxxxxxx,应该会自动重定向到http://midolibarr.com/dolibarr/xxxxxxxxxxxxxxxxxxx。
内容的提问来源于stack exchange,提问作者Daviid
相关产品推荐
相关产品推荐

