Lighttpd 服务器 WordPress 永久链接规则
在 Lighttpd 服务器上启用 WordPress 的“固定链接”(Permalinks)功能,需要配置 url.rewrite-once 规则。以下规则集经过优化,能正确处理 WordPress 的多站点、媒体文件以及核心请求。
标准 Rewrite 规则配置
请将以下规则添加到你的 Lighttpd 配置文件(通常为 lighttpd.conf)或对应的虚拟主机配置中。
url.rewrite-once = (
"^/(wp-.+)" => "$1",
"^/([_0-9a-zA-Z-]+/)?(wp-.+)" => "$2",
"^/([_0-9a-zA-Z-]+/)?(.*.php)$" => "$2",
"^/.+.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)(?.*)?$" => "$0",
"^/(.*)?/?files/(.*)" => "wp-includes/ms-files.php?file=$2",
"(.+)/?$" => "/index.php$1"
)
规则详解与修正说明
相较于原文提供的旧规则,上述规则进行了以下重要修正和优化:
- 修正语法错误:原文规则中的
"(?.*)$"存在语法错误,已修正为更通用的"(.+)/?$" => "/index.php$1",用于捕获所有其他请求并传递给index.php。 - 更新多站点文件处理:对于 WordPress 多站点(Multisite)模式下的上传文件,正确的处理端点应为
wp-includes/ms-files.php,而非已过时的wp-content/blogs.php。 - 排除静态资源:新增了一行规则
"^/.+.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)(?.*)?$" => "$0",用于直接访问静态文件(如样式表、图片、字体),避免不必要的重写,提升性能。 - 优化核心请求匹配:优先匹配
wp-开头的 WordPress 核心文件(如wp-admin,wp-content,wp-includes中的脚本),确保它们能被直接访问。
配置步骤
- 备份你的 Lighttpd 配置文件。
- 在相应的配置块(通常是针对特定主机或全局的
server.modules部分)中,确保已启用mod_rewrite模块。 - 将上述
url.rewrite-once规则添加到配置中。 - 重新加载或重启 Lighttpd 服务以使配置生效。
- 登录 WordPress 后台,在 设置 > 固定链接 中选择你喜欢的链接结构并保存。
注意:此规则适用于 WordPress 标准安装及多站点安装。配置后,请务必检查网站前台页面和后台管理功能是否正常,特别是媒体文件是否能正确显示。