wordpress固定链接失效的特殊情况

如果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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理