首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >域转发时URL中的垃圾字符

问域转发时URL中的垃圾字符
EN

Stack Overflow用户
提问于 2017-09-04 13:28:30
回答 4查看 1.3K关注 0票数 2

最近我面临这个问题,我已经将我的域名转发到了我的GoDaddy共享主机上托管的文件之一。但是,每当我点击浏览器中的域名时,它就会导致相应的文件(.html )以及前面的垃圾字符。

示例:

代码语言:javascript
复制
www.domainname.info

导致:

代码语言:javascript
复制
https://www.mydomainname.in/coffee.html/NjSmZ/KiKgZ/

结果:

找不到404页错误。

没有改变任何代码,这是一种突然的行为。

更新(更多信息):

NjSmZ/KiKgZ/是链接中的垃圾字符。转发是通过GoDaddy域转发器本身进行的。不对转发进行外部编码。

www.Aitb.in是转发给advity.in/adarsha.html的域。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-09-04 14:31:11

虽然我不知道GoDaddy如何在内部转发其域,但它似乎不是一个简单的DNS CNAME,因为在当前域的查找中没有显示任何内容。

在玩游戏时,查看转发域的响应,我看到它提供了一个301 (永久移动) http响应。响应将选择的域替换为新域,并保持URL的路径部分不变。

考虑到domain.a是转发域,domain.b是新域,这意味着:

代码语言:javascript
复制
http://domain.a/ => http://domain.b/
http://domain.a/contact.html => http://domain.b/contact.html
http://domain.a/a/long/path/ => http://domain.b/a/long/path/

但在你的情况下,你不仅仅是一个域名.B更像domain.b/coffee.html,遵循同样的规则,这意味着:

代码语言:javascript
复制
http://domain.a/ => http://domain.b/coffee.html
http://domain.a/contact.html => http://domain.b/coffee.html/contact.html
http://domain.a/a/long/path/ => http://domain.b/coffee.html/a/long/path/

因此,我在这里的建议是,要么使用一个更好的着陆url_rewrite重定向路径到正确的。或者,如果你不能,你可以尝试添加一个?或者在你的URL末尾#。这纯粹是推测,但如果重写没有其他隐藏规则,这将提供如下内容,这将作出适当的请求,并“隐藏”垃圾部分。

代码语言:javascript
复制
http://domain.a/ => http://domain.b/coffee.html?
http://domain.a/contact.html => http://domain.b/coffee.html?/contact.html
http://domain.a/a/long/path/ => http://domain.b/coffee.html?/a/long/path/
票数 2
EN

Stack Overflow用户

发布于 2017-10-02 18:41:49

“垃圾字符”当然来自GoDaddy,而不是原始请求。域转发正是GoDaddy所称的使用301或302重定向(或他们称之为“掩蔽”的iframe )重定向web请求的服务。问题是--无论出于什么原因,为重定向服务的GoDaddy web服务器经常在域后面附加一些“随机”字符(作为子文件夹)。根据我的经验,子文件夹总是直接出现在域之后,并且出现在可能是原始请求一部分的任何路径之前。所以,正如Salketer所说,这只是一次黑客攻击。不过,还是有一个问题是关于高爸爸的。

另外,如果您确实使用了黑客,并且在您的站点上使用了,那么您可能希望添加类似?x=的内容,而不仅仅是吗?然后,您可以在Analytics中排除x参数,这样您的主页就不会有100个不同的URL。

票数 0
EN

Stack Overflow用户

发布于 2018-08-01 19:36:02

我在GoDaddy控制的几个不同域上发生了这个问题。我曾多次尝试与GoDaddy支持部门联系,以解决这个问题,但没有成功。最终,我决定自己解决这个问题,因为GoDaddy似乎对他们的问题一无所知。

这里是我的解决方案:将这个PHP代码添加到您的404错误页面的顶部。对于WordPress,添加主题的404.php文件:

代码语言:javascript
复制
<?php 
/* GoDaddy 404 Redirects FIX - by Daniel Chase - https://riseofweb.com */
$currURL = $_SERVER['REQUEST_URI'];
$CheckRedirectError1 = substr($currURL, -6);
$CheckRedirectError2 = substr($currURL, 0, 7);
$CheckRedirectError = false;
if (preg_match("/^[a-zA-Z]{5}\/$/",$CheckRedirectError1)){
    $CheckRedirectError = $CheckRedirectError1;
}else if (preg_match("/^\/[a-zA-Z]{5}\/$/",$CheckRedirectError2)){
    $CheckRedirectError = substr($CheckRedirectError2, 1);
}
if($CheckRedirectError){
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
    $redirectTo = str_replace($CheckRedirectError, '', $currURL);
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: " . $protocol . $_SERVER['HTTP_HOST'] . $redirectTo);
    exit();
}
?>

脚本检查随机字符并删除它们,然后重定向到正确的页面。您可能需要添加一些异常或修改脚本以满足您的需要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46038158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档