2015-05-20 4 views
2

В тестовом инструменте для мобильных веб-сайтов из Google (https://www.google.com/webmasters/tools/mobile-friendly/) говорится, что мой сайт не оптимизирован для мобильных устройств, но это. И причина в том, что Robots.txt блокирует множество ресурсов. Мой сайт основан на joomla 1.5, но у него есть отзывчивый шаблон.Как разрешить js и css файлы и изображения в файле robots.txt, если я запретил родительские папки

это мой файл 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

Это происходит потому, что Google ставит приоритеты в отношении конкурирующих разрешений и запретов на основе длины пути. Побеждает директива с более длинным путем. Если они имеют одинаковую длину, Allow Wins over Disallow. Это правило относится к Google. Не все сканеры делают это так.

Например, в следующем:

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

/муравьеда будет заблокирован (для Google), потому что "/ аа" длиннее "/ A", так что Disallow имеет приоритет над Разрешить.

В:

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

/муравьеда не будет заблокирован, поскольку Разрешить имеет более длинный путь.

Для этого правила подстановочный знак считается еще одним символом. Например, в этом:

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

/муравьеда бы не быть заблокирован, потому что «/ а *» такой же длины, как «/ аа» (даже если «/ а *» функционально идентичен "/a ", что короче).

Как это исправить?

Вариант 1:

Самый простой способ будет просто удалить некоторые из Запрещает и признать, что Google будет сканировать некоторые файлы, которые вы не хотите, чтобы они. Вероятно, это то, что я сделал бы. Это, очевидно, компромисс, но это единственный вариант, который фактически сделает ваш файл 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.

Вы можете площадку Позволяет с несколькими групповыми символами хвостовых, чтобы сделать их больше, чем самый длинный Disallow:

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

# Your existing disallows go here. 

Это отменит любой Disallow, чей путь имеет 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

 Смежные вопросы

  • Нет связанных вопросов^_^