我尝试使用多站点设置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/
。
有人知道如何解决这个问题吗?
答案 0 :(得分:0)
这是你所说的:
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
下找不到管理员,或者之后没有重定向属性,具体取决于您的目标。
答案 1 :(得分:0)
这个球童配置适合我。希望这会有所帮助。
rewrite {
regexp ^(/[^/]+)?(/wp-.*)
to {2}
}
rewrite {
regexp ^(/[^/]+)?(/.*\.php)
to {2}
}
rewrite {
if {path} not_match ^\/wp-admin
to {path} {path}/ /index.php?{query}
}