如何通过.htaccess配置主站指向public_html、/places子路径对应WordPress站点
配置调整方案
你当前的配置存在三个核心问题:重写变量语法错误、未排除/places路径请求、根站点WordPress规则位置错误,按以下步骤调整即可:
1. 替换root/.htaccess全部内容
RewriteEngine On # 匹配主域名(带/不带www都生效) RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC] # 排除places路径请求,不转发到public_html RewriteCond %{REQUEST_URI} !^/places/ [NC] # 排除已指向public_html的请求,避免死循环 RewriteCond %{REQUEST_URI} !^/public_html/ [NC] # 其余所有请求转发到public_html目录处理 RewriteRule ^(.*)$ /public_html/$1 [L]
改动说明:
- 修正了原配置中
${HTTP_HOST}的语法错误,Apache服务器变量需用%开头而非$ - 新增/places路径排除规则,避免该路径请求被错误转发到public_html目录
- 移除了原配置中放在根目录的WordPress规则,这段规则需要放到对应站点目录下
2. 新增root/public_html/.htaccess文件
你之前写在root/.htaccess里的WordPress规则属于根站点的配置,需要挪到根站点所在的public_html目录下,新建.htaccess写入以下内容即可:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
3. root/places/.htaccess无需调整
你现有的places目录下的.htaccess配置符合需求,不需要修改。
额外验证项
配置完成后请确认两个WordPress站点的后台地址配置正确:
- public_html站点后台「设置」-「常规」中, WordPress地址(URL)和站点地址(URL)都填写
http://example.com - places站点后台「设置」-「常规」中, WordPress地址(URL)和站点地址(URL)都填写
http://example.com/places
内容的提问来源于stack exchange,提问作者zennkaiii
相关产品推荐
相关产品推荐

