大量的喜欢,但现在意识到它是一个无效的网址

时间:2013-05-09 10:16:35

标签: url facebook-like facebook-likebox

我的网站www.kruaklaibaan.com(是的,我知道它很可怕)目前有370万个喜欢但是在努力建立一个不使用一些华丽的phpBB怪物的合适网站时,我注意到所有这些喜欢都注册了无效的网址根本不会链接回我网站的网址。相反,所有喜欢都已经注册了URL编码版本:

www.kruaklaibaan.com%2Fviewtopic.php%3FF%3D42%26吨%3D370

这显然是不正确的。由于我已经有这么多喜欢,我希望能够将这些喜欢更新到正确的URL或让他们只是指向www.kruaklaibaan.com的基本网址

他们应该注册的正确网址是(不是网址编码):

www.kruaklaibaan.com/viewtopic.php?f=42&t=370

Facebook上有人可以和我讨论吗? 3.7m喜欢有点太多不能重新开始没有很多心痛。建立起来需要2年时间。

1 个答案:

答案 0 :(得分:0)

如果没有让Facebook上的某个人更新网址,那么我能想到的控件中唯一可行的选项是创建自定义404错误页面。我已经使用您的网址和以下作品对此类网页进行了测试。

首先,您需要为ErrorDocument(或其他服务器中的等效项)设置Apache指令。

ErrorDocument 404 /path/to/404.php

这将导致任何404页面命中该脚本,如果合适,它将进行必要的检查和重定向。

我测试了以下脚本,它运行良好。

<?php

if ( $_SERVER['REQUEST_URI'] == '/%2Fviewtopic.php%3Ff%3D42%26t%3D370' ) {
    Header("HTTP/1.1 301 Moved Permanently");
    Header("Location: /viewtopic.php?f=42&t=370");
    exit();
} else {
    header('HTTP/1.0 404 Not Found');
}

?><html><body>
<h1>HTTP 404 Not Found</h1>
<?php echo $_SERVER['REQUEST_URI']; ?>
</body></html>

这是实现这一目标的半肮脏方式,但我在Apache2.2中使用mod_alias的Redirect和mod_rewrite的RewriteRule尝试了几种变体,我都没能使用包含百分比编码字符的URL。我怀疑使用nginx你可能会以更优雅的方式在服务器中处理这个问题。