You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修复WordPress多站点与YOURLS共存的.htaccess重写规则错误

解决WordPress多站点与YOURLS的.htaccess规则冲突问题

核心思路是基于域名和请求路径分流:让Apache优先识别sub.domain.com下属于YOURLS的请求,转发到yourls目录处理,剩余请求交给WordPress多站点。

完整的.htaccess配置代码

将以下代码替换public_html目录下的.htaccess内容:

RewriteEngine On

# ---------- YOURLS 规则(优先处理)----------
# 仅对sub.domain.com生效
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
# 排除WordPress核心路径,避免YOURLS接管WP后台/静态文件
RewriteCond %{REQUEST_URI} !^/(wp-admin|wp-content|wp-includes|xmlrpc\.php|wp-.*\.php)$
# 如果请求的文件/目录不存在,交给YOURLS处理(匹配短链和后台)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ yourls/index.php [L]

# 直接访问yourls目录下的文件时,正常跳转
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteRule ^yourls/(.*)$ yourls/$1 [L]

# ---------- WordPress 多站点规则(子域名模式)----------
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteBase /
RewriteRule ^index\.php$ - [L]

# 允许直接访问WP的静态文件和目录
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# 剩余请求交给WP处理
RewriteRule . /index.php [L]

# 如果你的WP多站点是子目录模式,替换上面的WP规则为官方子目录模式规则

配套配置调整

  1. YOURLS 配置修改:
    打开public_html/yourls/config.php,修改以下参数:

    define('YOURLS_SITE', 'https://sub.domain.com');
    define('YOURLS_PATH', '/'); // 注意是根路径,因为通过sub.domain.com直接访问
    
  2. WordPress 配置确认:

    • 确保WP多站点中sub.domain.com的站点URL设置为https://sub.domain.com
    • 如果之前的WP多站点规则是官方生成的,替换时注意保持匹配你的站点模式(子域名/子目录)

测试注意事项

  • 清除浏览器缓存或使用无痕模式访问,避免旧缓存干扰
  • 分别测试:
    • YOURLS后台:sub.domain.com/admin
    • YOURLS短链:比如你创建的sub.domain.com/test
    • WP站点:sub.domain.com及WP后台sub.domain.com/wp-admin

内容的提问来源于stack exchange,提问作者ansQuestion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 09:20:13