Wordpress multisite的Caddy配置

Wordpress multisite的Caddy配置,wordpress,multisite,caddy,caddyfile,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

我正在尝试使用多站点设置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 &
}
当我到达
/fr/wp admin/
时,我得到一个301到
/wp admin/


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

这就是您所指出的:

rewrite {
    regexp ^/[_0-9a-zA-Z-]+(/wp-.*)
    to {path} {path}/ {1}
}
在您的情况下,通过请求
/fr/wp admin/
将尝试提供以下服务:

  • {path}
    =
    /fr/wp admin/

  • {path}/
    =
    /fr/wp admin/

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


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

    此Caddy配置适合我。希望这有帮助

    rewrite {
        regexp ^(/[^/]+)?(/wp-.*)
        to {2}
    }
    
    rewrite {
        regexp ^(/[^/]+)?(/.*\.php)
        to {2}
    }
    
    rewrite {
        if {path} not_match ^\/wp-admin
        to {path} {path}/ /index.php?{query}
    }