0

您好,我想为我的 wordpress 创建一个本地沙箱,并保持与我的托管服务器完全相同的主机名;所以当我重新上传所有数据库时,一切都保持 1:1。

我不能通过 Windows 中的 hosts 文件来做到这一点,因为我需要一个不同于 80 的端口,并且不想将 wordpress 站点 url 设置为 mydomain.com:8080 之类的东西

我试过用 FoxyProxy 用一些正则表达式规则设置它:IE redirect mydomain.com -> 192.168.0.x port: 8080

Eveyrhting 工作除了 wordpress:它创建这个 301 无限重定向,最终 url 看起来像这样:

http://mydomain.comhttp//mydomain.comhttp//mydomain.com (注意下一个缺少的冒号)

其中一个标题如下所示:

状态代码:301 永久移动远程地址:192.168.0.10:80

推荐人政策:no-referrer-when-downgrade 响应标头视图

源内容长度:2 内容类型:文本/html;字符集=UTF-8

日期:格林威治标准时间 2017 年 8 月 16 日星期三 06:19:11

位置:http://mydomain.comhttp://mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp //mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp //mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp//mydomain.comhttp //mydomain.comhttp//mydomain.comhttp//mydomain.comhttp/mydomain.com/

Server:Apache/2.4.18 (Ubuntu) Request Headers 查看源码 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng, / ;q=0.8

接受编码:gzip,放气

接受语言:en-US,en;q=0.8,fr-FR;q=0.6,fr;q=0.4

Cache-Control:no-cache Host:mydomain.comhttp Pragma:no-cache

代理连接:保持活动升级-不安全-请求:1

用户代理:Mozilla/5.0(Windows NT 10.0;Win64;x64)

AppleWebKit/537.36(KHTML,像 Gecko)Chrome/60.0.3112.90

野生动物园/537.36

我在这里没有选择。谢谢!

4

2 回答 2

0

找到问题/解决方案:

使用代理时,服务器变量 REQUEST_URI 不一样

使用 FoxyProxy,服务器 var 'REQUEST_URI' 返回完整的 url:

$_SERVER['REQUEST_URI'] -> "hxxp://mydomain.com/theurl"

使用 Windows 主机文件,服务器 var 'REQUEST_URI' 只返回 url 的结尾: $_SERVER['REQUEST_URI'] -> "/theurl"

所以我将它添加到 wordpress index.php 并且一切正常 #1 :D :

$_SERVER['REQUEST_URI'] = requesturl_format($_SERVER['HTTP_HOST'], $_SERVER['REQUEST_URI']);

function requesturl_format($m_host, $m_request){
    $m_regex = sprintf('#(https?://)(%s)(/.*)#', $m_host);

    if(preg_match( $m_regex, $m_request, $matches)){
        if(count($matches) == 4){

            $m_host = ($matches[1]);
            $m_domain = ($matches[2]);
            $m_url_req = ($matches[3]);
            return $m_url_req;
        }
    }
    return $m_request;
}
于 2017-08-17T02:54:38.860 回答
0

第 1 步:编辑您的主机文件并添加您想要的域,在我的情况下是 dark.dev.com,就像这样127.0.0.1 dark.dev.com

第 2 步:转到您的 wordpress 管理仪表板中的设置,并使用您的新域名编辑站点地址 (URL)WordPress 地址 (URL) ,即dark.dev.com

于 2017-08-16T06:59:10.130 回答