Lighttpd下WordPress多站点子目录部署的重写规则调整求助
Lighttpd下WordPress多站点子目录部署的重写规则调整求助
嗨,我来帮你搞定这个Lighttpd重写规则的调整问题!
首先,咱们先明确核心需求:你原本把WordPress多站点放在了Web服务器的根目录(htdocs),现在要把整个站点移到htdocs的某个子目录里(比如我假设你要移到/wp-multisite/,你可以换成自己实际的子目录名),同时要让Lighttpd的重写规则能正确适配这个新路径。
你之前的重写规则是针对根目录的,所以现在只需要给每一条规则的匹配路径和目标路径都加上子目录的前缀就行。下面是调整后的完整规则:
url.rewrite-final = ( "^/wp-multisite/([_0-9a-zA-Z-]+/)?(wp-json.*)" => "/wp-multisite/index.php/$2", "^/wp-multisite/index\.php$" => "/$0", "^/wp-multisite/([_0-9a-zA-Z-]+/)?wp-admin$" => "/wp-multisite/$1wp-admin/", "^/wp-multisite/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*)" => "/wp-multisite/$2", "^/wp-multisite/([_0-9a-zA-Z-]+/)?(.*\.php)" => "/wp-multisite/$2", "^/wp-multisite/(.*)/?$" => "/wp-multisite/index.php" )
关键调整说明:
- 所有规则的匹配前缀都加上了
/wp-multisite/,这样只有访问这个子目录的请求才会触发WordPress的重写逻辑,不会影响你在根目录下部署的其他站点 - 目标路径也对应加上了子目录前缀,确保请求能正确指向子目录里的WordPress核心文件
- 如果你用的是其他子目录名称(比如
/my-local-wp/),只需要把规则里所有的/wp-multisite/替换成你的实际子目录路径即可
额外注意事项:
别忘了配合WordPress后台的设置更新:
- 登录WordPress后台,把「站点地址(URL)」和「WordPress地址(URL)」都改成
http://localhost/你的子目录名/ - 如果是多站点,还要进入网络设置,确保所有子站点的URL都同步更新为带新子目录的路径
- 检查Lighttpd配置里是否有针对该子目录的权限设置,确保允许PHP执行,避免出现403或500错误
备注:内容来源于stack exchange,提问作者drumkid
相关产品推荐
相关产品推荐

