2012-11-28 21 views
1

最近我在我的網站管理員工具中看到一些隨機站點正在鏈接到我的站點。其實這不是一個大問題。當鏈接的頁面由於我的.htaccess文件而不是實際頁面時,就會出現問題。停止重寫htaccess創建隨機頁面

這是.htaccess代碼,我運行:

#Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^([^/\.]+)/?$ index.php?id=$1 [L] 
RewriteRule ^([0-9]+)/(.*)$ index.php?id=$1 [L] 

所以真正的網址是:

mysite.com/folder/999/TITLE-OR-NAME 

但因爲我只檢查第一個文件夾$1這是一個數字ID ,這個.htaccess文件允許黑客通過隨機URL鏈接到我的網站,例如:

mysite.com/folder/999/TITLE-OR-NAME1 
mysite.com/folder/999/TITLE-OR-NAME2 
mysite.com/folder/999/TITLE-OR-NAME3 
mysite.com/folder/999/TITLE-OR-NAME4 
mysite.com/folder/999/TITLE-OR-NAME5 

最糟糕的部分是當谷歌告訴我,我正在複製內容!

其實我沒有複製內容,.htaccess爲我複製。是的,我知道,我是一個壞的新手程序員,但我真的很感謝你的幫助,因爲我努力尋找解決方案,但它從來沒有效果。

回答

0

您可能需要調整這一點,但應該讓你關閉:

RewriteRule ^([0-9]+)/([A-Za-z]*)([0-9]*)$ [R=404,L,NC] 
RewriteRule ^([0-9]+)/(.*)$ index.php?id=$1 [L] 

= 404說將R拋出一個404,如果他們打這種情況下,不execeute更多的改寫指令(L )。 NC表示不區分大小寫。

編輯的固定網址: 這會去每個固定頁面,而不是列出的所有必去404換句話說,它會檢查針對FOO,然後對酒吧,依此類推,直到它擊中結束的情況下;一個非有效的網址,然後404的它。

RewriteRule ^([0-9]+)/(FOO){1}$ index.php?id=$2 [L] 
RewriteRule ^([0-9]+)/(BAR){1}$ index.php?id=$2 [L] 
... 
RewriteRule ^([0-9]+)/(.*)$ [R=404,L,NC] 
+0

作爲一個方面說明,我相信谷歌現在允許您刪除壞的反向鏈接到您的網站。 – Shawn

+0

謝謝你的支持者肖恩,它不工作,因爲我解釋這個問題並不好。標題不僅可以是TITLE-OR-NAME1或TITLE-OR-NAME2,而且可以是TITLE-NAME-GOOD或TITLE-NAME-GOOD-GOOD,所以你的規則不適用於此。 – Vistol

+0

謝謝肖恩,但我尋找一個真正的解決方案:) – Vistol