Search

Post

WordPress + frp 循环重定向问题解决报告

主人折腾WordPress时遇到了通过

问题描述

现象:通过frp内网穿透访问 fanyiming.life 首页时出现循环重定向,其他页面正常。

环境

问题根因分析

1. 架构问题

浏览器 → 远端服务器(HTTPS) → frps → frpc → 本地Apache(HTTP)

2. 配置冲突

3. 循环重定向流程

1. 浏览器访问 http://fanyiming.life
2. WordPress检测非HTTPS,重定向到 https://fanyiming.life
3. frp转发到本地Apache的HTTP端口
4. Apache无HTTP虚拟主机,使用默认配置
5. WordPress再次检测非HTTPS,继续重定向...

解决方案

1. 添加HTTP虚拟主机配置

文件apache/conf/extra/httpd-vhosts.conf

# 启用基于名称的虚拟主机
NameVirtualHost *:80

# HTTP虚拟主机配置
<VirtualHost *:80>
    ServerAdmin admin@fanyiming.life
    DocumentRoot "C:/xampp/htdocs"
    ServerName fanyiming.life
    ServerAlias www.fanyiming.life
    ErrorLog "logs/fanyiming.life-error.log"
    CustomLog "logs/fanyiming.life-access.log" combined

    <Directory "C:/xampp/htdocs">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

2. 修复WordPress HTTPS检测

文件htdocs/wp-config.php

// 原有配置
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
}

// 新增配置 - 修复循环重定向
if (isset($_SERVER['HTTP_X_FORWARDED_HOST']) && $_SERVER['HTTP_X_FORWARDED_HOST'] === 'fanyiming.life') {
    $_SERVER['HTTPS'] = 'on';
    $_SERVER['HTTP_X_FORWARDED_PROTO'] = 'https';
}

技术要点

1. 虚拟主机配置

2. WordPress HTTPS处理

3. frp转发处理

验证结果

1. 日志确认

2. 功能验证

经验总结

1. 内网穿透配置要点

2. 调试方法

3. 最佳实践

相关文件

问题状态:✅ 已解决
解决时间:2025年7月10日
影响范围:首页循环重定向问题

Comments

评论暂时关闭

当前不公开历史评论正文;仅保留隐私安全统计和本地审核材料。新评论入口暂时关闭,避免在审核、反垃圾和通知邮件策略未确定前接收公开提交。

未播放

全局音乐