如果wp安装在子目录而不是站点的根目录时,可能会出现固定链接功能失效页面404的问题。如果排除了目录和PHP权限等原因后,无法解决,那么
解决的办法在于,此种情况下需手动指定wordpress的安装目录:
yourdomain.com {
# 网站根目录指向存放 wordpress 文件夹的上一级
root * /var/www/html
# 处理 /blog 路径下的所有请求
handle_path /blog* {
# 实际代码存放位置
root * /var/www/html/wordpress
# 尝试:1.找文件 2.找目录 3.交给 wordpress 的 index.php
try_files {path} {path}/ index.php?{query}
# 转发给 PHP-FPM
php_fastcgi unix//run/php/php8.4-fpm.sock
# 启用文件服务
file_server
}
# 其他路径的处理(可选)
handle {
file_server
}
}
handle_path /blog*: 当用户访问 /blog/xxx 时,Caddy 进入这个块,并自动把 /blog 从请求路径中剥离。进入这个块后,Caddy 看到的请求变成了 /xxx。
index.php?{query}: 显式地将请求参数传递给 WordPress 的入口文件,这是实现静态链接(伪静态)的核心。
编辑 wp-config.php,在 <?php 下方添加:
PHP
define(‘WP_HOME’, ‘https://yourdomain.com/blog’);
define(‘WP_SITEURL’, ‘https://yourdomain.com/blog’);
重启 Caddy: sudo systemctl restart caddy
