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

如何通过.htaccess设置静态页为根目录,迁移WordPress到/blog并重定向404

实现方案

你的需求完全可以通过修改根目录的.htaccess文件实现,修改后可以保证根目录静态页面正常访问,所有原本会触发404的请求全部自动重定向到/blog路径下,避免原有内容链接失效。

修改后的完整.htaccess内容

#DirectoryIndex index.php index.html

#Options +FollowSymLinks

# Indexes
Options All -Indexes

# REDIRECT https
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.com/$1 [R,L]

# 根目录不存在的资源重定向到/blog路径
# 迁移过程中可以先用R=302临时重定向,确认所有链接正常后改为R=301永久重定向利于SEO
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /blog/$1 [R=302,L]

# BEGIN FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch "\.(jpg|gif|png|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule>
# END FileETag MTime Size<!--formatted-->

# Protecting htaccess
<files .htaccess>
order allow,deny
deny from all
</files>

# Protecting wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>

关键改动说明

  • 删除了原根目录下的WordPress重定向规则,WordPress迁移到/blog目录后,会自动在/blog目录下生成适配子目录的.htaccess规则,不需要保留根目录的WP规则
  • 新增的重定向规则只会对根目录下不存在的文件/目录触发,不会影响你放在根目录的静态页面、静态资源的正常访问
  • 重定向默认使用302临时跳转,避免迁移过程中出问题被搜索引擎缓存错误规则,全链路验证正常后可将R=302改为R=301

后续操作提醒

  1. 将所有WordPress文件完整迁移到/blog目录后,登录WordPress后台,将「站点地址(URL)」「WordPress地址(URL)」都修改为https://example.com/blog保存
  2. 规则生效后可验证:根目录静态文件(如/index.html)正常访问,原有旧文章链接(如/my-first-post)会自动跳转到/blog/my-first-post

内容的提问来源于stack exchange,提问作者Antonio Laguna

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:57:03