将线上WordPress站点迁移至本地XAMPP服务器时出现404错误
解决WordPress迁移本地XAMPP后非首页404问题
1. 启用Apache Rewrite模块
- 打开XAMPP控制面板,点击Apache的「Config」,选择「httpd.conf」
- 找到
#LoadModule rewrite_module modules/mod_rewrite.so,移除行首的#注释 - 保存文件,重启Apache服务
2. 修改目录权限配置
- 在httpd.conf中找到对应
htdocs目录的<Directory>段(通常路径为C:/xampp/htdocs) - 将
AllowOverride None修改为AllowOverride All - 保存后重启Apache
3. 重置固定链接设置
- 访问本地WordPress后台:
localhost/myproject/wp-admin - 进入「设置」→「固定链接」,无需修改任何选项,直接点击「保存更改」
- 此操作会自动生成适配本地环境的
.htaccess规则
4. 手动配置.htaccess文件
- 若上述步骤无效,在
xampp/htdocs/myproject目录下创建/修改.htaccess文件,内容如下:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /myproject/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /myproject/index.php [L] </IfModule> # END WordPress
- Windows系统下创建时,需用记事本「另存为」,文件名填
.htaccess,保存类型选「所有文件」
5. 补全数据库URL替换
- 检查之前的SQL替换语句,确保
wp_options表的替换使用完整URL:
UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://localhost/myproject') WHERE option_name = 'home' OR option_name = 'siteurl';
- 部分主题/插件可能在其他表存储URL,可通过以下SQL查询所有含文本类型字段的表,批量替换:
SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '你的本地数据库名' AND DATA_TYPE IN ('text', 'longtext', 'varchar');
针对查询结果中的字段,执行类似UPDATE 表名 SET 字段名 = replace(字段名, 'http://olddomain.com', 'http://localhost/myproject');的语句
内容的提问来源于stack exchange,提问作者Xinying Zhou
相关产品推荐
相关产品推荐

