2013-05-09 9 views
0

我的網站在www.kruaklaibaan.com(是的,我知道這是可怕的)目前有370萬喜歡,但同時努力建立一個不使用一些合適的網站花花公子phpBB怪物我注意到,所有這些喜歡是註冊一個無效的URL,實際上並沒有鏈接回我的網站的URL。相反,喜歡已經全部登記對抗網址編碼版本:大量的喜歡,但現在意識到它是一個無效的網址

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

這顯然是不正確。由於我已經有這麼多喜歡,我希望或者讓那些喜歡更新到正確的URL或讓他們指向www.kruaklaibaan.com的基礎網址

他們應該註冊的正確url是(不是URL編碼):

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

有沒有人在Facebook上,我可以討論這個問題?沒有很多心痛,3.7m的喜歡有點太多了。花了2年的時間來建立起來。

+0

也許這是一個Facebook支持的問題? – christopher 2013-05-09 10:18:33

+0

同意,但你有沒有真正嘗試過聯繫Facebook支持?我尋找10分鐘,並找不到任何方式聯繫Facebook關於這個問題。在你投下一個問題之前,或許你應該檢查你的建議實際上是否有效?我做了我的研究,並指出了這個方向 - 我是一名開發人員,這是一個開發人員論壇 - 我的問題與開發人員有關。 – 2013-05-09 11:01:30

回答

0

在Facebook上找人更新URL的唯一方法是,我能想到的唯一選擇就是創建一個自定義的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中的重定向和mod_rewrite的的重寫規則,這兩者都不我已經能夠得到一個URL工作包裹率編碼字符。我懷疑,使用nginx,你可能會以更優雅的方式在服務器上處理這個問題,獲得更好的成功。

+0

謝謝,這是一個好主意。我認爲有一個問題,但如果你抓住了url http://www.kruaklaibaan.com%2Fviewtopic.php%3Ff%3D42%26t%3D370,你會發現url實際上並不包含/字符。因此整個網址被認爲是域的一部分,所以請求永遠不會到達服務器:( – 2013-05-09 11:27:14

+0

的確,我忽略了這個小事實:)如果鏈接甚至不能訪問你的域,這個解決方案將無法工作。你只剩下找到一種方法讓Facebook進行必要的更新。 – JinnKo 2013-05-09 15:22:19

+0

真的很遺憾,他們應該提供一個網站遷移工具或類似的東西。特別是當你寫一個網站的新版本,並可能必須大大改變(如完全清理)網站的URL /永久鏈接。安全可以像谷歌那樣完成,在你的標記中添加一個元標記來證明你擁有這個網站,也許你可以通過一些輔助檢查,比如短信到你的註冊手機或其他東西。 – 2013-05-09 15:33:37

相關問題