2015-05-20 66 views
2

在從谷歌手機瀏覽的網站(https://www.google.com/webmasters/tools/mobile-friendly/)的測試工具,它說,我的網站沒有針對移動設備進行了優化,但它是。原因是因爲Robots.txt阻塞了很多資源。我的網站基於joomla 1.5,但它有一個響應式模板。如何允許在robots.txt JS和CSS文件和圖像,如果我有禁止父文件夾

這是我的robots.txt文件,但它似乎是JS,CSS和圖像仍然受阻。

User-agent: * 

Allow: /templates/ 
Allow: /*.js 
Allow: /*.css 
Allow: /*.jpg 
Allow: /*.gif 
Allow: /*.png 

Disallow: /administrator/ 
Disallow: /cache/ 
Disallow: /components/ 
Disallow: /images/ 
Disallow: /includes/ 
Disallow: /installation/ 
Disallow: /language/ 
Disallow: /libraries/ 
Disallow: /media/ 
Disallow: /modules/ 
Disallow: /plugins/ 
Disallow: /tmp/ 
Disallow: /xmlrpc/ 
Disallow: /AnexosEmpresas/ 
Disallow: /Formulario/ 
Disallow: /estadisticas/ 
Disallow: /installation-xx/ 
Disallow: /site2/ 
Disallow: /TemplateMail/ 
Disallow: /IMPLEMENTACION/ 
Disallow: /clicks/ 
Disallow: /LiveZilla/ 
Disallow: /*format=feed* 
Disallow: /*view=category* 
Disallow: /*index.php/* 
Disallow: /*option=com_sobi2* 
Disallow: /*content/category/* 
Disallow: /*start=/* 
Disallow: /presentacion_ant/ 
Disallow: /presentacion/ 
Disallow: /CronJobs/ 
Disallow: /plantillas/ 

有關如何解鎖所需資源的任何想法?

+0

顯而易見的解決方案是簡單地刪除與您想要解鎖的目錄對應的Disallow行。如果有什麼阻止你這樣做,請澄清問題以包含此信息。 – plasticinsect

+0

刪除禁止行的問題是因爲,幾乎在每個文件夾中都存在js,css和圖像,所以我將不得不刪除幾乎所有「禁止」,這不是一個好主意。我只想讓Google能夠抓取所有文件夾中的js,css和圖像。 – user3407397

回答

6

發生這種情況,因爲谷歌的競爭優先次序是允許並禁止基於路徑的長度。具有較長路徑的指令獲勝。如果它們長度相同,則允許勝過Disallow。此規則僅適用於Google。並非所有的抓取工具都是這樣做的。

例如,在以下內容:

User-agent: * 
Allow: /a 
Disallow: /aa 

/土豚將被阻止(爲谷歌),因爲「/ AA」比「/一個」長,所以不允許有超過允許的優先級。

在:

User-agent: * 
Allow: /aa 
Disallow: /a 

/土豚不會被阻止,這是因爲允許有更長的路徑。

對於這一規則的目的,通配符被算作只是一個或多個字符。例如,在此:

User-agent: * 
Allow: /a* 
Disallow: /aa 

/土豚將被阻塞,因爲 「/ A *」 是相同的長度 「/ AA」(即使 「/ A *」 在功能上等同於「/a「,這更短)。

如何解決呢?

選項1:

最簡單的方法是簡單地刪除一些禁止並接受,谷歌會爬,你不希望他們的一些文件。這可能是我會做的。這顯然是一種妥協,但它實際上將讓你的robots.txt文件容易閱讀的唯一選擇。

選項2:

明確允許可以包含類型的文件每個目錄的每個文件類型。例如,該行:

Disallow: /plugins/ 

將成爲這樣:

Allow: /images/*.jpg 
Allow: /plugins/*.js 
Allow: /plugins/*.css 
Allow: /plugins/*.gif 
Allow: /plugins/*.png 
Disallow: /plugins/ 

上面的例子將阻止在任何文件/插件/,除了當URL包括 「.JPG」 之一, 「.js」,「.css」等

它會阻止:

http://example.com/plugins/ 
http://example.com/plugins/somefile.php 
http://example.com/plugins/some/path/somefile.php 

它不會阻止:

http://example.com/plugins/somefile.js 
http://example.com/plugins/somefile.jpg 
http://example.com/plugins/somefile.css 
http://example.com/plugins/whatever.php?file=foo.css 

你必須爲每個你阻擋目錄單獨做到這一點。

選項3:

警告:以下是一劈。我已經證實這是有效的,但它依賴於Google未來可能會改變的無證行爲。它幾乎肯定不適用於Google以外的抓取工具。

您可以與多個尾隨通配符墊允許,使他們比最長不允許長:

Allow: /*.js*************** 
Allow: /*.css************** 
Allow: /*.jpg************** 
Allow: /*.gif************** 
Allow: /*.png************** 

# Your existing disallows go here. 

這將覆蓋任何不允許其路徑有20個字符或更少。尾隨通配符對匹配的內容沒有影響。他們只會增加優先權。

+0

例如,我怎麼能允許這個CSS資源的抓取... ... http://www.example.com/plugins/system/cdscriptegrator/libraries/highslide/css/cssloader.php?files%5B%5D=highslide .css ?,因爲檢查我的網站是否適合移動的測試工具說這不是因爲像這樣的資源被阻止。 – user3407397

+0

選項2和選項3都將完成此操作。我編輯了我的例子,希望能夠更清楚一點。 – plasticinsect

相關問題