2012-07-04 45 views
0

我在我的網站上發生了一種奇怪的情況,谷歌認爲某些php頁面是其他php頁面的子頁面。例如,我在Google網站站長工具中看到出現如下頁面的錯誤:http://domain.com/page1.php/page5.php。網站上存在page1.php和page5.php,但我無法弄清楚爲什麼谷歌認爲應該連接到另一個。用.htaccess排除奇怪的頁面

瀏覽到這樣的鏈接將加載page1.php,但不正確。我的目標是使用.htaccess(或其他建議)來簡單地重定向到第一頁,如果其他頁面跟隨。我是否正確思考這個問題,並且任何人都可以提供建議來幫助我解決這個問題?謝謝!

更新:我的.htaccess文件中的唯一行從以前的文件夾結構重定向到單個php文件,但是這已經存在了至少一年。例如:

RedirectMatch 301 ^/widgets/?$ http://firesage.com/widgets.php

UPDATE2:我剛剛發現這個 '軟404' 錯誤網站管理員工具:http://domain.com/page2.php/include/include/lookup.php?id=22。首先,我通過robots.txt排除了包含文件夾。包含文件夾在URL中列出兩次的事實是非常可疑的。

+1

谷歌只是跟隨鏈接(並閱讀您的站點地圖文件...),所以不要錯誤地鏈接/ URL加載正確,你最好確保你的鏈接正是他們需要的。 – jeroen

+0

奇怪的是,這些網址在Google搜索中找不到,而在Google網站管理員工具中找不到。他們似乎在減少我的排名,但我的網站地圖是乾淨的,我找不到使用此網址鏈接到我的網站的網站。我不知道這是從哪裏來的。 – Kristofer

+0

這就是Google *爬蟲*在抓取您的網站時發現的內容...... – Havelock

回答

2

一般來說,您可以使用.htaccess來重定向Google,但我寧願建議您找出Google看到這些「錯誤」鏈接的原因(即Jeroen對您問題的評論)。這是.htaccess開始,直到你找到原因。

<IfModule mod_rewrite.c> 

RewriteEngine On 
RewriteBase/
Options +FollowSymLinks 

# every page on its own 
RewriteRule ^page1.php/(.*)$ /page1.php [R=301,L] 
RewriteRule ^page2.php/(.*)$ /page2.php [R=301,L] 
# or in general maybe the following to replace all of the above, if you think it'll fit 
# RewriteRule ^([^/.]+)\.php/(.*)$ /$1.php [R=301,L] 

</IfModule> 

更新
如果您還需要通過任何可能的GET參數,只需添加QSA標誌,使其成爲[R=301,L,QSA]

+0

這個問題的頁面不應該訪問子目錄,所以我正在尋找最簡單的方法來簡單地重定向到主頁面。使用上面的例子,如果有任何子目錄被找到,下面的工作將會進行:RewriteRule^page1.php/$ /page1.php [R = 301,L]?只有排除是將get變量附加到url後,例如?id = 234 – Kristofer

+0

因此,您希望像'domain.com/ /pageX.php'這樣的東西被重定向到domain.com/pageX.php '?如果是這樣,''部分怎麼樣?它應該只是'dirName0-9'還是它也可以像'dirname0/dirname1 /.../ dirName9'這樣的子目錄?我們首先澄清一下,然後關於排除情況:) – Havelock

+0

足夠公平。頁面名稱不統一,所以它必須每頁一行。我希望將domain.com/pageX.php/anything/here/should.be/ignored僅僅重定向到domain.com/pageX.php。我不確定主機提供商(1and1)是否在幫助解決問題,但是頁面無法正確加載,並且附加到原始頁面的額外目錄。 – Kristofer

0

我在.htaccess上並不是專家,但也許你的重定向規則很混亂。 要進行重定向,只需使用你的.htaccess:

RewriteEngine On 
RewriteRule ^some regex$ http://yourdomain.com/page1.php [L] 

請問你的.htaccess的樣子嗎?你能用它更新你的問題嗎?

0

查找指向page1.php/而不是page1.php的鏈接。

如果谷歌(或瀏覽器)打開一個鏈接到page1.php/,web服務器預訂購提供「正確」的文件page1.php,但谷歌會認爲page1.php是一個目錄,因此解釋相對鏈接(到page2.php)像他們從開始索引文件在「目錄」page1.php中。