Windows下XAMPP子目录WordPress的.htaccess导致父目录资源无法访问怎么办
问题根因
你当前的配置将WordPress子目录内的重写规则作用范围提升到了站点根目录,所有请求都会被转发到WordPress的入口文件处理,访问非WordPress资源时就会触发不必要的数据库连接逻辑,导致报错。
解决方案
1. 修正wordpress子目录下的.htaccess配置
将你原有wordpress文件夹内的.htaccess内容替换为以下标准子目录适配配置:
# BEGIN WordPress RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase /wordpress/ RewriteRule ^index\.php$ - [L] # 为/wp-admin路径补全尾部斜杠 RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /wordpress/$2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ /wordpress/$2 [L] RewriteRule . /wordpress/index.php [L] # END WordPress
核心修改点:
- 将
RewriteBase从/改回/wordpress/,限定重写规则只作用于WordPress子目录 - 重写跳转路径前明确加上
/wordpress/前缀,避免路径解析错误
2. 校验WordPress基础配置
登录WordPress后台,进入设置→常规页面,确认两项地址配置:
- WordPress地址(URL):填写WordPress子目录的实际访问地址,例如本地测试场景填
http://localhost/wordpress - 站点地址(URL):如果不需要将WordPress作为根域名站点使用,该项与上面的WordPress地址保持一致即可。
特殊场景适配(需根域名直接访问WordPress)
如果你希望用户访问站点根域名时直接展示WordPress内容,同时不影响根目录其他资源访问,可额外做以下配置:
- 从wordpress子目录复制
index.php文件到站点根目录(即XAMPP的htdocs目录下) - 编辑根目录下的index.php,将最后一行的
require __DIR__ . '/wp-blog-header.php';修改为require __DIR__ . '/wordpress/wp-blog-header.php'; - 回到WordPress常规设置页,将*站点地址(URL)*修改为根域名地址,例如
http://localhost - 将wordpress子目录下的.htaccess文件移动到站点根目录,保留
RewriteBase /配置即可
生效验证
修改完成后重启XAMPP的Apache服务,清理浏览器缓存后分别访问根目录下的其他文件、文件夹和WordPress站点,确认均可以正常访问。
内容的提问来源于stack exchange,提问作者xharkie
相关产品推荐
相关产品推荐

