Конфигурация Caddy для многоязычного Wordpress
Я пытаюсь настроить веб-сайт Wordpress с помощью multisite:
-
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/
.
Кто-нибудь знает, как это исправить?
Ответы
Ответ 1
Это то, что вы указали:
rewrite {
regexp ^/[_0-9a-zA-Z-]+(/wp-.*)
to {path} {path}/ {1}
}
Что в вашем случае, с запросом /fr/wp-admin/
попытается выполнить:
Значение Caddy не находит администратора под /fr
или не перенаправляется после этого, в зависимости от того, на что вы нацелитесь.
Ответ 2
Эта конфигурация caddy работает для меня. Надеюсь, это поможет.
rewrite {
regexp ^(/[^/]+)?(/wp-.*)
to {2}
}
rewrite {
regexp ^(/[^/]+)?(/.*\.php)
to {2}
}
rewrite {
if {path} not_match ^\/wp-admin
to {path} {path}/ /index.php?{query}
}