内网穿透下的 wordpress 地址冲突问题与 https 下的后台登陆问题

news2025/1/19 3:07:45

内网穿透下的 wordpress 地址冲突问题与 https 下的后台登陆问题

  • 内网穿透下的地址冲突
  • https 登录管理后台
  • 总结

同步发布在个人笔记内网穿透下的 wordpress 地址冲突问题与 https 下的后台登陆问题

笔记记录解决两个 wordpress 相关问题

  • 如果我们使用内网穿透把本地的 wordpress 服务穿透到公网上,同时希望仍能用内网 ip 访问后台的话,会遇到 wordpress 主站地址冲突的问题,即 wordpress 不知道要把内网 ip 当作地址还是把公网访问用的域名当作地址;
  • 如果我们使用 https 协议访问 wordpress 会遇到无法登录进管理后台的问题。

内网穿透下的地址冲突

wordpress 会有两个重要参数 wordpress 地址站点地址,大部分情况下个人网站两个值是一样的,此处不分别处理。

这个值是可以手动修改的,所以如果我们只希望通过一种方式(ip / 域名)访问,那么我们修改一下就好。如果我们希望既可以在外网用域名访问,同时希望还可以在内网用 ip 访问的话,就要求 wordpress 可以通过访问方式,自动的调整两个参数。
一般情况下,大部分解决方案是在wp-config.php文件里添加下面两行:

define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);

很好理解,就是在配置文件里把访问地址直接写进两个参数内(直接写值会导致后台页面参数变灰,不可更改)。简单情况下,这样问题就解决了,但是此种方法下 wordpress 会把 https 协议的域名也当作 http 处理。这会导致一些图片无法加载。
此种情况下,我们还要分辨是使用了 http 还是 https 协议。
识别协议可以使用 php 函数$_SERVER['HTTPS']

$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';

用这个方法分辨后再去 define url 似乎也可以,可是我的情况更恼人一些,由于我是用 frp 工具内网穿透了服务,我的本地 wordpress 服务是没配置 https 访问的,但是我的内网穿透服务器配置了 https 访问。这导致虽然用户是通过https://domain.com访问的博客,但是本地的 wordpress 感受不到,它仍然认为是通过http://domain.com访问的。这是因为协议头是逐跳标头,只能逐级传递不能跳传,所以 https 的信息传到内网穿透服务器就不再向下传了。

公网服务器domain.com
内网服务器
https
http
nginx
wordpress
用户

这种情况下,$_SERVER['HTTPS']是无法分辨的。所以只能另辟蹊径,用访问字头是数字还是非数字来判断是通过 ip 还是域名访问的,如果是 ip 访问,那就加上 http ;如果是域名那就加上 https。

if(is_numeric(substr($_SERVER['HTTP_HOST'],0,1)))	# is_numeric 判断是数字还是非数字
{
        $http_type = 'http://';
}
else
{
        $http_type = 'https://';
}

define('WP_SITEURL', $http_type . $_SERVER['HTTP_HOST']);
define('WP_HOME', $http_type . $_SERVER['HTTP_HOST']);

https 登录管理后台

当使用 https 访问 wordpress 时,虽然访问页面是没问题的,但是发现管理后台怎么也登陆不进去,这是因为wp-config.php还有一个地方需要修改,添加下面的语句。

$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

这样就可以 https 登录后台了。

总结

两个问题如果是分别出现,那么分别处理就好,但是我的情况是既要 https 登陆后台,也要保留内网 ip 操作的能力。所以不能武断把两段代码一起插进去,而要结合一起,ip 访问时,不开启 https 登录;域名访问是开启 https 登录。

if(is_numeric(substr($_SERVER['HTTP_HOST'],0,1)))
{
        $http_type = 'http://';
}
else
{
        $http_type = 'https://';

		$_SERVER['HTTPS'] = 'on';
		define('FORCE_SSL_LOGIN', true);
		define('FORCE_SSL_ADMIN', true);
}

define('WP_SITEURL', $http_type . $_SERVER['HTTP_HOST']);
define('WP_HOME', $http_type . $_SERVER['HTTP_HOST']);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1622563.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

着手开发属于自己的第一个Intellij-platform plugin插件程序(三)

开发第一个插件 本节会从0开始构建一个简单的IDE插件,包括插件工程相关的配置。完成后的代码可当做插件开发的基础开发框架使用,这可大大节省新插件开发时工程的构建时间。本节旨在为了在正式学习开发Intellij平台插件之前使开发者对Intellij平台插件的开…

了解DNS洪水攻击

域名系统 (DNS) 服务器是互联网的“电话簿“;互联网设备通过这些服务器来查找特定 Web 服务器以便访问互联网内容。在互联网中,DNS 洪水是一种网络攻击方式。 DNS 洪水攻击是一种分布式拒绝服务 (DDoS) 攻击,攻击者用大量流量淹没某个域的 D…

高效一键改写文章,智能伪原创工具轻松搞定

在信息爆炸的时代,想要高效率的一键改写文章却是很多创作者都想了解的方法。然而在人工智能技术发展的今天,智能伪原创工具的出现,也正是成了广大创作者用来一键改写文章的好方法,因为它的优势,可以为大家轻松完成改写…

java 自动加密解密RequestBodyAdvice和RequestBodyAdvice

自定义注解 package com.han.annotation;import java.lang.annotation.*;Target({ElementType.METHOD,ElementType.TYPE}) Retention(RetentionPolicy.RUNTIME) Documented public interface SecretAnnotation {///是否加密默认falseboolean encode() default false;///是否解…

【Python-闭包】

Python-闭包 ■ 闭包特性■ 简单闭包■ 使用nonlocal关键字修改外部函数的值■ 使用闭包实现ATM小案例 ■ 闭包特性 ■ 简单闭包 def outer(logo):def inner(msg):print(f"<{logo}>{msg}<{logo}>")return innerfn1 outer("程序员") fn1(&quo…

QFD赋能人工智能:打造智能化需求分析与优化新纪元

在科技飞速发展的今天&#xff0c;人工智能(AI)已经渗透到我们生活的方方面面。然而&#xff0c;如何让AI更加贴合用户需求&#xff0c;提供更加精准和个性化的服务&#xff1f;这成为了一个亟待解决的问题。质量功能展开&#xff08;Quality Function Deployment&#xff0c;简…

Unity 实现原神中的元素反应

一、元素反应 原神中共有七种元素&#xff0c;分别是水、火、冰、岩、风、雷、草。这七种元素能互相作用 Demo下载&#xff1a;Download 元素反应表格图示&#xff0c;可能不够精准 /火水雷冰草岩风绽放原激化火/蒸发超载融化燃烧结晶扩散烈绽放/水蒸发/感电冻结/碎冰绽放结晶…

揭秘高效秘诀:并行工作方法论助你事半功倍!

当一个人在一段时间面对多项工作内容的时候&#xff0c;有的人可以顺利高效地完成任务&#xff1b;有的人经过大量的加班也可以完成任务&#xff1b;有的人不用通过加班就能高效地完成任务。 如何高效地完成每项工作内容而实现目标&#xff0c;就变得相当重要了。“并行工作方法…

李宏毅2022机器学习/深度学习 个人笔记(1)

本系列用于推导、记录该系列视频中本人不熟悉、或认为有价值的知识点 本篇记录第一讲&#xff08;选修&#xff09;&#xff1a;神奇宝贝分类 如图&#xff0c;为了估算某个样本属于某类的概率&#xff0c;在二分类问题中&#xff0c;我们需要计算红框所示的4个参数&#xff0…

Web前端开发之HTML_1

第一个前端程序VS Code安装VS Code 快捷键 1. 第一个前端程序 使用记事本&#xff0c;新建一个文本文档&#xff0c;重命名为Welcome.html&#xff0c;如下图&#xff1a; 用记事本打开文档&#xff0c;内容输入如下&#xff1a; <html> <head> <t…

精酿啤酒:从酿造到包装的严格质量控制流程

在啤酒酿造行业中&#xff0c;质量控制是确保产品品质和口感的重要环节。Fendi Club啤酒在从酿造到包装的整个过程中&#xff0c;实施了严格的质量控制流程&#xff0c;确保每一瓶啤酒都达到了高标准的质量要求。 在酿造过程中&#xff0c;Fendi Club啤酒严格控制原料的质量。他…

SAP FI SD UKM_ITEMS_READ 信贷读取 注意点

营销核算反馈说是 以上连个客户之间 有从属关系&#xff0c;但是通过接口获取的信贷数据缺了一部分&#xff0c;只有组代码的那一部分&#xff0c;经查询总欠款是通过 UKM_ITEMS_READ 获取的。要求改正确&#xff0c;但是TMD没有给逻辑&#xff0c;也没有查其他是否正常。果断找…

BSV区块链协会上线首个版本的ARC交易处理器

​​发表时间&#xff1a;2024年3月28日 BSV区块链协会近期上线了首个版本的ARC交易处理器。ARC是一项区块链交易处理服务&#xff0c;能在通过P2P网络广播交易之前验证并存储相关的交易。一旦新区块被挖出&#xff0c;一条与该交易相关的Merkle路径将被发回给交易发起者作为确…

数值积分——复化梯形求积公式 | 北太天元

复化求积法的思想&#xff1a; 将区间 [ a , b ] [a,b] [a,b]进行 n n n等分&#xff0c;步长 h b − a n h\frac{b-a}{n} hnb−a​&#xff0c;等分点 x k a k h , k 0 , 1 , 2 , ⋯ , n x_{k}akh,k0,1,2,\cdots,n xk​akh,k0,1,2,⋯,n, 先在每个子区间 [ x k , x k 1 ] …

FANUC发那科机器人如何进行维修

FANUC发那科机器人是一种广泛应用于制造业的自动化设备&#xff0c;其可靠性和稳定性对于生产线的正常运行至关重要。然而&#xff0c;随着使用时间的增加&#xff0c;机器人难免会出现各种法兰克机械手故障和维修FANUC机器人需求。 一、了解发那科机器人故障现象 首先&#xf…

智慧城市标准化白皮书(2022版)发布

2022年7月25日&#xff0c;国家智慧城市标准化总体组2022年度全体会议召开期间&#xff0c;《智慧城市标准化白皮书&#xff08;2022版&#xff09;》正式发布。 城市作为一个复杂巨系统&#xff0c;是多元主体融合及多元活动集聚的复杂综合体。城市的运行发展关联 到发展、治…

2024年教你学会如何把学浪视频下载到本地

今年是2024年&#xff0c;依然有很多小伙伴想下载学浪却不知道怎么下载&#xff0c;本文就教大家如何使用小浪助手工具下载学浪视频 小浪助手工具我已经打包好了&#xff0c;有需要的自己取一下 学浪下载工具链接&#xff1a;https://pan.baidu.com/s/1-axc7xDtwU_KtupCe52sV…

Nodejs--异步编程

异步编程 函数式编程 高阶函数 在通常的语言中&#xff0c;函数的参数只接受基本的数据类型或者是对象引用&#xff0c;返回值只能是基本数据类型和对象引用。 function foo(x) {return x }高阶函数是把函数作为参数&#xff0c;将函数作为返回值的函数 function foo(x) {…

最短路问题之Bellman-Ford,SPFA算法,例题 负环

Bellman-Ford算法&#xff1a; Bellman-Ford算法用于解决带有负权边的单源最短路径问题。其基本思想是通过不断地松弛边来逐步求解最短路径。算法的主要步骤如下&#xff1a; 初始化&#xff1a;将源点到各个顶点的距离初始化为无穷大&#xff0c;源点的距离初始化为0。重复更…

二. 搭建Nginx 直播流程服务器

目录 1. 前言 2. 安装 Nginx 依赖 3.下载源码 4. 编译安装 5.配置 rtmp 服务 6.验证配置 1. 前言 服务器由 NGINXRTMP 构成。 NGINX 是 HTTP 服务器&#xff0c; RTMP 是附加模块。 其中 NGINX 我选择的是用 源码编译方式 进行安装&#xff0c;因为这种方式可以自定义…