用于Wordpress多站点的Caddy配置

Sam*_*THE 13 wordpress multisite caddy caddyfile

我正在尝试使用多站点设置一个Wordpress网站:

  • example.com

  • example.com/fr

使用以下Caddyfile:

example.com:80 {
    redir https://www.example.com{uri}
}

www.example.com:80 {
    root /app/public
    gzip

    fastcgi / 127.0.0.1:9000 {
        ext .php
        split .php
        index index.php
    }

    rewrite {
        regexp ^/[_0-9a-zA-Z-]+(/wp-.*)
        to {path} {path}/ {1}
    }

    rewrite {
        regexp ^/[_0-9a-zA-Z-]+(/.*\.php)$
        to {path} {path}/ {1}
    }

    rewrite {
        if {path} not_match ^\/wp-admin
        to {path} {path}/ /index.php?_url={uri}
    }

    log stdout
    startup /usr/sbin/php-fpm7.0 -F -O &
}
Run Code Online (Sandbox Code Playgroud)

当我到达时/fr/wp-admin/,我得到301 /wp-admin/.

有人知道如何解决这个问题吗?

Adr*_*vat 0

这就是您所指出的:

rewrite {
    regexp ^/[_0-9a-zA-Z-]+(/wp-.*)
    to {path} {path}/ {1}
}
Run Code Online (Sandbox Code Playgroud)

在您的情况下,请求/fr/wp-admin/将尝试提供服务:

  1. {path}=/fr/wp-admin/

  2. {path}/=/fr/wp-admin/

  3. {1}= /wp-admin/,这是括号中捕获的第一个块

这意味着 Caddy 找不到 下的管理员/fr,或者之后没有重定向属性,具体取决于您的目标。