使用代理的本地域重映射:无限301重定向,错误的URL拼写

时间:2017-08-16 作者:TheMedServ

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

我不能通过windows hosts file 在windows中,因为我需要一个不同于80的端口,并且不想将wordpress站点url设置为类似mydomain的内容。通讯:8080

我尝试用FoxyProxy设置一些正则表达式规则:即重定向mydomain。com->192.168.0。x端口:8080

除了wordpress之外,Eveyrhting都可以工作:它创建了301 infinite redirect 最终url如下所示:

http://mydomain.comhttp//mydomain.comhttp//mydomain.com (注意下面的冒号)

其中一个标题如下所示:

Status Code:301 Moved Permanently Remote Address:192.168.0.10:80

Referrer Policy:no-referrer-when-downgrade Response Headers view

source Content-Length:2 Content-Type:text/html; charset=UTF-8

Date:Wed, 16 Aug 2017 06:19:11 GMT

Location: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 view source Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8

Accept-Encoding:gzip, deflate

Accept-Language: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

Proxy-Connection:keep-alive Upgrade-Insecure-Requests:1

User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64)

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

Safari/537.36
Where can i find the php file that make the redirects so I can try to find what is going on? 感谢

编辑:我的HTACCESS文件(我使用帖子名permalinks):

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
编辑:刚刚发现:wp\\u重定向看起来错误,我将进一步调查。

wp\\U重定向函数处的PHP调试回溯:

array(8) {
  [0]=>
  array(4) {
    ["file"]=>
    string(69) "/home/mydomain/www/public_html/mydomain.com/wp-includes/canonical.php"
    ["line"]=>
    int(516)
    ["function"]=>
    string(11) "wp_redirect"
    ["args"]=>
    array(2) {
      [0]=>
      &string(37) "http://mydomain.comhttp/mydomain.com/"
      [1]=>
      &int(301)
    }
  }
  [1]=>
  array(2) {
    ["function"]=>
    string(18) "redirect_canonical"
    ["args"]=>
    array(1) {
      [0]=>
      &string(0) ""
    }
  }
索引重定向之外的所有内容都可以工作#1:管理面板、登录页等。

看起来重定向规范函数中有问题,我将调查代码,看看是什么导致了这个问题。

使用FoxyProxy真是太棒了。我可以在任何地方、任何IP、任何端口单击从沙盒服务器切换到托管服务器,而无需更改主机名或代码中的任何内容。

1 个回复
SO网友:TheMedServ

发现问题/解决方案:

使用代理时,服务器变量REQUEST\\u URI不同

使用FoxyProxy,服务器var“REQUEST\\u URI”返回完整url:

$_SERVER[\'REQUEST_URI\'] -> “”hxxp://mydomain.com/theurl“”

使用windows主机文件,服务器var“REQUEST\\u URI”只返回url的结尾:$_SERVER[\'REQUEST_URI\']-> “/网址”

所以我把它添加到wordpress索引中。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;
}

结束

相关推荐

WordPress网络(多站点)/wp-admin/重定向循环(ERR_TOO_MANY_REDIRECTS)

我有一个Wordpress网络,在那里我运行+/-10个站点。最近,我在访问其中一个站点的wp admin页面时出现重定向错误。网络中的所有站点都工作正常,我也可以访问他们的管理员,除了一个站点之外,没有任何问题。我收到错误:ERR\\u TOO\\u MANY\\u重定向以下是我所做的:清理浏览器、服务器和云中的所有COOKIE清理缓存重命名htaccess重命名插件文件夹重命名主题文件夹添加定义(\'COOKIE\\u DOMAIN\',false);对于wp config,这个站点的配置与其他站点完