博客 / WordPress/ Lighttpd 服务器 WordPress 永久链接(Rewrite)规则配置指南

Lighttpd 服务器 WordPress 永久链接(Rewrite)规则配置指南

Lighttpd 服务器 WordPress 永久链接(Rewrite)规则配置指南

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 中的脚本),确保它们能被直接访问。

配置步骤

  1. 备份你的 Lighttpd 配置文件。
  2. 在相应的配置块(通常是针对特定主机或全局的 server.modules 部分)中,确保已启用 mod_rewrite 模块。
  3. 将上述 url.rewrite-once 规则添加到配置中。
  4. 重新加载或重启 Lighttpd 服务以使配置生效。
  5. 登录 WordPress 后台,在 设置 > 固定链接 中选择你喜欢的链接结构并保存。

注意:此规则适用于 WordPress 标准安装及多站点安装。配置后,请务必检查网站前台页面和后台管理功能是否正常,特别是媒体文件是否能正确显示。

发表评论

您的邮箱不会公开。必填项已用 * 标注。