что означает и как правильно использовать
В данной статье речь пойдет о самых популярных директивах Dissalow и Allow в файле robots.txt.
Disallow
Allow
Совместная интерпретация директив
Пустые Allow и Disallow
Специальные символы в директивах
Примеры совместного применения Allow и Disallow
Disallow
Disallow – директива, запрещающая индексирование отдельных страниц, групп страниц, их отдельных файлов и разделов сайта(папок). Это наиболее часто используемая директива, которая исключает из индекса:
- страницы с результатами поиска на сайте;
- страницы посещаемости ресурса;
- дубли;
- сервисные страницы баз данных;
- различные логи;
- страницы, содержащие персональные данные пользователей.
Примеры директивы Disallow в robots.
# запрет на индексацию всего веб-ресурса User-agent: Yandex Disallow: /
# запрет на обход страниц, адрес которых начинается с /category User-agent: Yandex Disallow: /category
# запрет на обход страниц, URL которых содержит параметры User-agent: Yandex Disallow: /page?
# запрет на индексацию всего раздела wp-admin User-agent: Yandex Disallow: /wp-admin
# запрет на индексацию подраздела plugins User-agent: Yandex Disallow: /wp-content/plugins
# запрет на индексацию конкретного изображения в папке img User-agent: Yandex Disallow: /img/images.jpg
# запрет индексации конкретного PDF документа User-agent: Yandex Disallow: /dogovor.pdf
# запрет на индексацию не только /my, но и /folder/my или /folder/my User-agent: Yandex Disallow: /*my
Правило Disallow работает с масками, позволяющими проводить операции с группами файлов или папок.
После данной директивы необходимо ставить пробел, а в конце строки пробел недопустим.
В одной строке с Disallow через пробел можно написать комментарий после символа “#”.Allow
В отличие от Disallow, данное указание разрешает индексацию определенных страниц, разделов или файлов сайта. У директивы Allow схожий синтаксис, что и у Disallow.
Хотя окончательное решение о посещении вашего сайта роботами принимает поисковая система, данное правило дополнительно призывает их это делать.
Примеры Allow в robots.txt:
# разрешает индексацию всего каталога /img/ User-agent: Yandex Allow: /img/
# разрешает индексацию PDF документа User-agent: Yandex Allow: /prezentaciya.pdf
# открывает доступ к индексированию определенной HTML страницы User-agent: Yandex Allow: /page.html
# разрешает индексацию по маске *your User-agent: Yandex Allow: /*your
# запрещает индексировать все, кроме страниц, начинающихся с /cgi-bin User-agent: Yandex Allow: /cgi-bin Disallow: /
Для директивы применяются аналогичные правила, что и для Disallow.
Совместная интерпретация директив
Поисковые системы используют Allow и Disallow из одного User-agent блока последовательно, сортируя их по длине префикса URL, начиная от меньшего к большему. Если для конкретной страницы веб-сайта подходит применение нескольких правил, поисковый бот выбирает последний из списка. Поэтому порядок написания директив в robots никак не сказывается на их использовании роботами.
На заметку. Если директивы имеют одинаковую длину префиксов и при этом конфликтуют между собой, то предпочтительнее будет Allow.
Пример robots.txt написанный оптимизатором:
User-agent: Yandex Allow: / Allow: /catalog/phones Disallow: /catalog
Пример отсортированного файл robots.txt поисковой системой:
User-agent: Yandex Allow: / Disallow: /catalog Allow: /catalog/phones # запрещает посещать страницы, начинающиеся с /catalog, # но разрешает индексировать страницы, начинающиеся с /catalog/phones
Пустые Allow и Disallow
Когда в директивах отсутствуют какие-либо параметры, поисковый бот интерпретирует их так:
# то же, что и Allow: / значит разрешает индексировать весь сайт User-agent: Yandex Disallow:
# не учитывается роботом User-agent: Yandex Allow:
Специальные символы в директивах
В параметрах запрещающей директивы Disallow и разрешающей директивы Allow можно применять специальные символы “$” и “*”, чтобы задать конкретные регулярные выражения.
Специальный символ “*” разрешает индексировать все страницы с параметром, указанным в директиве. К примеру, параметр /katalog* значит, что для ботов открыты страницы /katalog, /katalog-tovarov, /katalog-1 и прочие. Спецсимвол означает все возможные последовательности символов, даже пустые.
Примеры:
User-agent: Yandex Disallow: /cgi-bin/*.aspx # запрещает /cgi-bin/example.aspx # и /cgi-bin/private/test.aspx Disallow: /*private # запрещает не только /private # но и /cgi-bin/private
По стандарту в конце любой инструкции, описанной в Robots, указывается специальный символ “*”, но делать это не обязательно.
Пример:
User-agent: Yandex Disallow: /cgi-bin* # закрывает доступ к страницам # начинающимся с /cgi-bin Disallow: /cgi-bin # означает то же самое
Для отмены данного спецсимвола в конце директивы применяют другой спецсимвол – “$”.
Пример:
User-agent: Yandex Disallow: /example$ # закрывает /example, # но не запрещает /example. html User-agent: Yandex Disallow: /example # запрещает и /example # и /example.html
На заметку. Символ “$” не запрещает прописанный в конце “*”.
Пример:
User-agent: Yandex Disallow: /example$ # закрывает только /example Disallow: /example*$ # аналогично, как Disallow: /example # запрещает и /example.html и /example
Более сложные примеры:
User-agent: Yandex Allow: /obsolete/private/*.html$ # разрешает HTML файлы # по пути /obsolete/private/... Disallow: /*.php$ # запрещает все *.php на сайте Disallow: /*/private/ # запрещает все подпути содержащие /private/ # но Allow выше отменяет часть запрета Disallow: /*/old/*.zip$ # запрещает все .zip файлы, содержащие в пути /old/ User-agent: Yandex Disallow: /add.php?*user= # запрещает все скрипты add.php? с параметром user
Примеры совместного применения Allow и Disallow
User-agent: Yandex Allow: / Disallow: / # разрешено индексировать весь веб-ресурс User-agent: Yandex Allow: /$ Disallow: / # запрещено включать в индекс все, кроме главной страницы User-agent: Yandex Disallow: /private*html # заблокирован и /private*html, # и /private/test. html, и /private/html/test.aspx и т.п. User-agent: Yandex Disallow: /private$ # запрещается только /private User-agent: * Disallow: / User-agent: Yandex Allow: / # так как робот Яндекса # выделяет записи по наличию его названия в строке User-agent: # тогда весь сайт будет доступен для индексирования
Я всегда стараюсь следить за актуальностью информации на сайте, но могу пропустить ошибки, поэтому буду благодарен, если вы на них укажете. Если вы нашли ошибку или опечатку в тексте, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Самый правильный robots.txt для популярных CMS
Содержание с переходом
Примеры robots.txt
robots.txt – это текстовый файл, лежащий в корне сайта и сообщающий поисковым системам как индексировать сайт. Набор строк сообщает, какие разделы сайта разрешить или запретить от индексации, причем для некоторых поисковых систем, может быть использованы дополнительные параметры обрабатывающий только конкретной поисковой системой.
Подробное руководство по использованию - robots.txt для Яндекс
Для тех, кто долго не любит вникать, как правильно составить robots.txt, привожу сразу список наиболее популярных CMS, и какие чаще всего подойдут для них настройки.
Главное понимать, что эти файлы не гарантируют 100% правильную работу, так как могут не закрыть разделы которые у Вас должны быть закрыты или напротив закрыть то, что не должно быть закрыто. Эти примеры лучше всего использовать, для того чтобы составить самому правильный роботикс тхт для своего сайта и не упустить особенности используемого Вами движка.
Так же не забыть там, где стоит site.ru подставить свой сайт.
Почти во всех случаях будет актуально:
Clean-param: utm_source=* Clean-param: utm_medium=* Clean-param: utm_campaign=* Clean-param: utm_content=* Clean-param: utm_term=* Clean-param: cm_id=* Clean-param: openstat=* Clean-param: ycid=* Clean-param: gcid=* Clean-param: ref=*
Просим не копировать и вставлять в том виде как есть, здесь перечислены лишь популярные элементы и так же требует тонкой настройки.
Если все слишком сложно, то пишите на почту, помогу настроить индексацию сайта.
robots.txt для WordPress
User-agent: * Allow: /wp-content/uploads Disallow: */comment-page-* Disallow: */comments Disallow: */feed Disallow: */trackback Disallow: /*? Disallow: /?feed= Disallow: /?s= Disallow: /author Disallow: /cgi-bin Disallow: /comments Disallow: /page Disallow: /search Disallow: /tag Disallow: /trackback Disallow: /webstat Disallow: /wp-admin Disallow: /wp-comments Disallow: /wp-content/cache Disallow: /wp-content/plugins Disallow: /wp-content/themes Disallow: /wp-feed Disallow: /wp-includes Disallow: /wp-login.php Disallow: /wp-register.php Disallow: /wp-trackback Disallow: /xmlrpc.php Sitemap: http://site.ru/sitemap.xml Host: site.ru
robots.txt для Joomla
User-agent: * Allow: /images Allow: /index.php?option=com_xmap&sitemap=1&view=xml Disallow: /*?action=print Disallow: /*?sl* Disallow: /*atom.html Disallow: /*rss.html Disallow: /administrator Disallow: /bin Disallow: /cache Disallow: /cli Disallow: /component Disallow: /components Disallow: /includes Disallow: /index* Disallow: /index2.php?option=com_content&task=emailform Disallow: /installation Disallow: /language Disallow: /layouts Disallow: /libraries Disallow: /logs Disallow: /media Disallow: /modules Disallow: /plugins Disallow: /templates Disallow: /tmp Disallow: /trackback Disallow: /xmlrpc Sitemap: http://site.ru/sitemap.xml Host: site.ru
robots.txt для MODX
User-agent: * Disallow: /*? Disallow: /*?id= Disallow: /assets Disallow: /assets/cache Disallow: /assets/components Disallow: /assets/docs Disallow: /assets/export Disallow: /assets/import Disallow: /assets/modules Disallow: /assets/plugins Disallow: /assets/snippets Disallow: /connectors Disallow: /core Disallow: /index. php Disallow: /install Disallow: /manager Disallow: /profile Disallow: /search Sitemap: http://site.ru/sitemap.xml Host: site.ru
robots.txt для uCoz
User-agent: * Allow: /*?page Allow: /*?ref= Disallow: /*-*-*-*-987$ Disallow: /*? Disallow: /*_escaped_fragment_= Disallow: /*0-*-0-17$ Disallow: /*0-0- Disallow: /*-0-0- Disallow: /a/ Disallow: /abnl Disallow: /admin Disallow: /index/1 Disallow: /index/2 Disallow: /index/3 Disallow: /index/5 Disallow: /index/7 Disallow: /index/8 Disallow: /index/9 Disallow: /index/sub Disallow: /informer Disallow: /mchat Disallow: /panel Disallow: /poll Disallow: /register Disallow: /search Disallow: /secure Disallow: /shop/checkout Disallow: /shop/user Disallow: /stat Sitemap: http://site.ru/sitemap-forum.xml Sitemap: http://site.ru/sitemap-shop. xml Sitemap: http://site.ru/sitemap.xml Host: site.ru
robots.txt для Drupal
User-agent: * Disallow: *comment* Disallow: *login* Disallow: *register* Disallow: /*&sort* Disallow: /*/delete Disallow: /*/edit Disallow: /*?sort* Disallow: /*calendar Disallow: /*index.php Disallow: /*order Disallow: /*section Disallow: /*votesupdown Disallow: /?q=admin Disallow: /?q=admin/ Disallow: /?q=comment/reply Disallow: /?q=contact Disallow: /?q=filter/tips Disallow: /?q=logout Disallow: /?q=node/add Disallow: /?q=search Disallow: /?q=user/login Disallow: /?q=user/logout Disallow: /?q=user/password Disallow: /?q=user/register Disallow: /admin Disallow: /admin/ Disallow: /archive/ Disallow: /book/export/html Disallow: /CHANGELOG.txt Disallow: /comment Disallow: /comment/reply Disallow: /comments/recent Disallow: /contact Disallow: /cron. php Disallow: /filter/tips Disallow: /forum Disallow: /forum/active Disallow: /forum/unanswered Disallow: /includes Disallow: /INSTALL.mysql.txt Disallow: /INSTALL.pgsql.txt Disallow: /install.php Disallow: /INSTALL.sqlite.txt Disallow: /INSTALL.txt Disallow: /LICENSE.txt Disallow: /logout Disallow: /logout/ Disallow: /MAINTAINERS.txt Disallow: /messages Disallow: /misc Disallow: /modules Disallow: /node Disallow: /node/add Disallow: /print/node Disallow: /profile Disallow: /profiles Disallow: /scripts Disallow: /search Disallow: /taxonomy Disallow: /taxonomy/term*/feed Disallow: /themes Disallow: /update.php Disallow: /UPGRADE.txt Disallow: /user Disallow: /user/ Disallow: /user/login Disallow: /user/logout Disallow: /user/password Disallow: /user/register Disallow: /xmlrpc.php Sitemap: http://site.ru/sitemap. xml Host: site.ru
robots.txt для 1С-Битрикс
User-agent: * Allow: /map/ Allow: /search/map.php Allow: /bitrix/templates/ Disallow: */index.php Disallow: /*action= Disallow: /*print= Disallow: /*/gallery/*order= Disallow: /*/search/ Disallow: /*/slide_show/ Disallow: /*?utm_source= Disallow: /*ADD_TO_COMPARE_LIST Disallow: /*arrFilter= Disallow: /*auth= Disallow: /*back_url_admin= Disallow: /*BACK_URL= Disallow: /*back_url= Disallow: /*backurl= Disallow: /*bitrix_*= Disallow: /*bitrix_include_areas= Disallow: /*building_directory= Disallow: /*bxajaxid= Disallow: /*change_password= Disallow: /*clear_cache_session= Disallow: /*clear_cache= Disallow: /*count= Disallow: /*COURSE_ID= Disallow: /*forgot_password= Disallow: /*ID= Disallow: /*index.php$ Disallow: /*login= Disallow: /*logout= Disallow: /*modern-repair/$ Disallow: /*MUL_MODE= Disallow: /*ORDER_BY Disallow: /*PAGE_NAME= Disallow: /*PAGE_NAME=detail_slide_show Disallow: /*PAGE_NAME=search Disallow: /*PAGE_NAME=user_post Disallow: /*PAGEN_ Disallow: /*print_course= Disallow: /*print= Disallow: /*q= Disallow: /*register= Disallow: /*register=yes Disallow: /*set_filter= Disallow: /*show_all= Disallow: /*show_include_exec_time= Disallow: /*show_page_exec_time= Disallow: /*show_sql_stat= Disallow: /*SHOWALL_ Disallow: /*sort= Disallow: /*sphrase_id= Disallow: /*tags= Disallow: /access. log Disallow: /admin Disallow: /api Disallow: /auth Disallow: /auth.php Disallow: /auto Disallow: /bitrix Disallow: /bitrix/ Disallow: /cgi-bin Disallow: /club/$ Disallow: /club/forum/search/ Disallow: /club/gallery/tags/ Disallow: /club/group/search/ Disallow: /club/log/ Disallow: /club/messages/ Disallow: /club/search/ Disallow: /communication/blog/search.php Disallow: /communication/forum/search/ Disallow: /communication/forum/user/ Disallow: /content/board/my/ Disallow: /content/links/my/ Disallow: /error Disallow: /e-store/affiliates/ Disallow: /e-store/paid/detail.php Disallow: /examples/download/download_private/ Disallow: /examples/my-components/ Disallow: /include Disallow: /personal Disallow: /search Disallow: /temp Disallow: /tmp Disallow: /upload Disallow: /*/*ELEMENT_CODE= Disallow: /*/*SECTION_CODE= Disallow: /*/*IBLOCK_CODE Disallow: /*/*ELEMENT_ID= Disallow: /*/*SECTION_ID= Disallow: /*/*IBLOCK_ID= Disallow: /*/*CODE= Disallow: /*/*ID= Disallow: /*/*IBLOCK_EXTERNAL_ID= Disallow: /*/*SECTION_CODE_PATH= Disallow: /*/*EXTERNAL_ID= Disallow: /*/*IBLOCK_TYPE_ID= Disallow: /*/*SITE_DIR= Disallow: /*/*SERVER_NAME= Sitemap: http://site. ru/sitemap_index.xml Sitemap: http://site.ru/sitemap.xml Host: site.ru
robots.txt для NetCat
User-agent: * Disallow: /*.swf Disallow: /*? Disallow: /eng Disallow: /install Disallow: /js Disallow: /links Disallow: /netcat Disallow: /netcat_cache Disallow: /netcat_dump Disallow: /netcat_files Sitemap: http://site.ru/sitemap.xml Host: site.ru
robots.txt для UMI.CMS
User-agent: * Disallow: /*? Disallow: /? Disallow: /admin Disallow: /emarket/addToCompare Disallow: /emarket/basket Disallow: /files Disallow: /go_out.php Disallow: /images Disallow: /images/lizing Disallow: /images/ntc Disallow: /index.php Disallow: /install-libs Disallow: /install-static Disallow: /install-temp Disallow: /search Disallow: /users Sitemap: http://site.ru/sitemap.xml Host: site.ru
robots.
txt для HostCMSUser-agent: * Disallow: /403 Disallow: /404 Disallow: /admin Disallow: /articles/tag Disallow: /captcha.php Disallow: /chmod.sh Disallow: /config.php Disallow: /config_db.php Disallow: /data_templates Disallow: /documents Disallow: /download_file.php Disallow: /glossary/tag Disallow: /hostcmsfiles Disallow: /lib Disallow: /logs Disallow: /main_classes.php Disallow: /modules Disallow: /news/tag Disallow: /search Disallow: /structure Disallow: /templates Disallow: /tmp Disallow: /upload Disallow: /xsl Disallow: captcha.php Disallow: download_file.php Sitemap: http://site.ru/sitemap.xml Host: site.ru
robots.txt для OpenCart
User-agent: * Disallow: /*filter_description= Disallow: /*filter_name= Disallow: /*filter_sub_category= Disallow: /*keyword Disallow: /*limit= Disallow: /*manufacturer Disallow: /*order= Disallow: /*page= Disallow: /*route=account Disallow: /*route=account/login Disallow: /*route=affiliate Disallow: /*route=checkout Disallow: /*route=checkout/cart Disallow: /*route=product/search Disallow: /*sort= Disallow: /*tracking= Disallow: /admin Disallow: /cache Disallow: /cart Disallow: /catalog Disallow: /change-password Disallow: /checkout Disallow: /download Disallow: /export Disallow: /index. php?route=account Disallow: /index.php?route=account/account Disallow: /index.php?route=account/login Disallow: /index.php?route=checkout/cart Disallow: /index.php?route=checkout/shipping Disallow: /index.php?route=common/home Disallow: /index.php?route=product/category Disallow: /index.php?route=product/compare Disallow: /index.php?route=product/manufacturer Disallow: /index.php?route=product/product*&manufacturer_id= Disallow: /index.php?route=product/search Disallow: /login Disallow: /my-account Disallow: /order-history Disallow: /request-return Disallow: /search Disallow: /search?filter_name= Disallow: /search?tag= Disallow: /system Disallow: /vouchers Disallow: /vqmod Disallow: /wishlist Sitemap: http://site.ru/sitemap.xml Host: site.ru
Проверка robots.txt
После вставки проверяем корректность работы файла:
Для Яндекс
– без регистрации, через Яндекс. Вебмастер
Для Google
– инструкция, с регистрацией через Google Вебмастер
В заключении о файле индексации
Если нет Вашей CMS пишите, для Вас составлю бесплатно этот файл и добавлю в список поста.
Так же я старался дать уникальные примеры файлов и редко делю директиву User-agent, как это некоторые любят, по следующим причинам:
- нет смысла делить то, что понимают все поисковые системы, результат создает избыточный размер файла, в крайнем случае, неизвестную директиву проигнорируют
- если мы делим на конкретные ПС, не указывая звездочку, то другие ПС не смогут корректно проиндексировать сайт
- если мы делим на конкретные ПС с указанием звездочки, тогда нет смысла перечислять в двух местах одни и те же директивы, а для других ПС имеет смысл перечислять тоже самое
Подробное руководство по использованию - robots.txt для Яндекс
Для тех, кто долго не любит вникать, как правильно составить robots. txt, привожу сразу список наиболее популярных CMS, и какие чаще всего подойдут для них настройки.
Главное понимать, что эти файлы не гарантируют 100% правильную работу, так как могут не закрыть разделы которые у Вас должны быть закрыты или напротив закрыть то, что не должно быть закрыто. Эти примеры лучше всего использовать, для того чтобы составить самому правильный роботикс тхт для своего сайта и не упустить особенности используемого Вами движка.
Так же не забыть там, где стоит site.ru подставить свой сайт.
Если все слишком сложно, то пишите на почту, помогу настроить индексацию сайта.
Robots.txt — предотвратить индексирование файлов .html
спросил
Изменено 5 лет, 6 месяцев назад
Просмотрено 2к раз
Я хочу запретить индексирование файлов *. html на нашем сайте, чтобы индексировались только чистые URL.
Итак, я хотел бы www.example.com/en/login
проиндексировано, но не www.example.com/en/login/index.html
В настоящее время у меня есть:
User-agent: * Запретить: / Запретить: /**.html — не работает Разрешить: /$ Разрешить: /*/логин*
Я знаю, что могу просто запретить, например. Disallow: /*/login/index.html
, но моя проблема в том, что у меня есть ряд этих файлов .html, которые я не хочу индексировать, поэтому мне интересно, есть ли способ запретить их все вместо того, чтобы делать их по отдельности?
- robots.txt
Прежде всего, вы продолжаете использовать слово «индексировано», поэтому я хочу убедиться, что вы знаете, что соглашение robots.txt заключается только в том, чтобы предложить автоматическим поисковым роботам избегать определенных URL-адресов в вашем домене, но перечисленные страницы в файле robots.txt может по-прежнему отображаться в индексах поисковых систем, если у них есть другие данные о странице. Например, Google прямо заявляет, что они все равно будут индексировать и перечислять URL-адреса, даже если им не разрешено его сканировать. Я просто хотел, чтобы вы знали об этом на тот случай, если вы используете слово «индексированный» для обозначения «перечисленного в поисковой системе», а не «сканируемого автоматической программой».
Во-вторых, не существует стандартного способа выполнить то, о чем вы просите. Согласно «Страницам веб-роботов»:
Обратите внимание, что подстановка и регулярное выражение , а не , поддерживаются как в User-agent, так и в строках Disallow. ‘*’ в поле User-agent — это специальное значение, означающее «любой робот». В частности, у вас не может быть таких строк, как «User-agent: bot », «Disallow: /tmp/*» или «Disallow: *.gif».
При этом это обычное дополнение, которое поддерживают многие поисковые роботы. Например, в документации Google к директивам, которые они поддерживают, они описывают поддержку сопоставления с образцом, которая обрабатывает использование * в качестве подстановочного знака. Таким образом, вы можете добавить Disallow: /*.html$
, и тогда Google не будет сканировать URL-адреса, заканчивающиеся на .html
, хотя они все равно могут оказаться в результатах поиска.
Но , если ваша основная цель сообщить поисковым системам, какой URL-адрес вы считаете «чистым» и предпочтительным, то на самом деле вам нужно указать канонические URL-адреса. Вы можете поместить элемент link rel="canonical"
на каждую страницу с вашим предпочтительным URL-адресом для этой страницы, и поисковые системы, которые используют этот элемент, будут использовать его, чтобы определить, какой путь предпочесть при отображении этой страницы.
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя электронную почту и парольОпубликовать как гость
Электронная почтаТребуется, но никогда не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
Запрещенное содержимое — документация CKEditor 4
Функция запрещенного содержимого была введена в CKEditor 4.4 как часть системы расширенного фильтра содержимого, которая была представлена в CKEditor 4.1 .
Функция «Запрещенный контент» дополняет существующую функцию «Разрешенный контент» тем, что позволяет вам явно заносить в черный список элементы, которые вы не хотите иметь в своем контенте CKEditor 4. Вы можете использовать его, чтобы ограничить функции, которые в противном случае были бы доступны в полностью автоматическом режиме Advanced Content Filter.
Запрещенное содержимое можно определить в параметре CKEDITOR.config.disallowedContent или добавить динамически с помощью метода CKEDITOR.filter.disallow. Он имеет более высокий приоритет, чем контент, разрешенный автоматически или настройкой CKEDITOR.config.allowedContent, следовательно, можно исправить автоматические настройки или добиться более сложных результатов вроде «разрешить все атрибуты, кроме тех, которые начинаются с по *
».
Невозможно запретить содержимое, если расширенный фильтр содержимого отключен путем установки для CKEDITOR.config.allowedContent значения верно
. Аналогичного решения можно достичь, разрешив все элементы HTML.
Правила запрещенного содержимого
Правила запрещенного содержимого очень похожи на правила разрешенного содержимого. Их можно указать в двух форматах (строковый и объектный), однако указать требуемые свойства нельзя (что в данном случае просто не имело бы никакого смысла).
Когда определены только имена элементов, правило запрещает целые элементы (и, таким образом, эти элементы будут удалены). Когда правило также содержит имена свойств, будут удалены только эти свойства (атрибуты, стили, классы), а не элементы (если не было удалено какое-либо требуемое свойство).
Лучше всего смотреть на примерах.
Запрет целых элементов.
config.allowedContent = 'h2 h3 h4 p'; config.disallowedContent = 'h3 h4'; // Вход:
Foo
Bar
Bom
// Отфильтровано:Foo
Bar
Bom
Запрещение атрибутов, классов и стилей.
config.allowedContent = 'p[*]{*}(foo,bar)'; config.disallowedContent = 'p[on*](foo)'; // Вход:
Foo
Bar
// Отфильтровано:Foo
Bar
Запрещение обязательного свойства.
config.allowedContent = 'p; img[!src,alt]'; config.disallowedContent = 'img[src]'; // Ввод: // Отфильтровано:
Запрет свойств для всех элементов.
config.allowedContent = 'p em{*}'; config.disallowedContent = '*{шрифт*}'; // Ввод:
Фу
// Отфильтровано:Foo
Настройка автоматически разрешенного контента.
// Включенные плагины: изображение и таблица. config.disallowedContent = 'img{граница*,маржа*}; таблица[граница]{*}';
После реализации этого кода откройте диалоговое окно «Свойства изображения» и убедитесь, что поля «Граница», «HSpace» и «VSpace» скрыты. Вы также можете открыть диалоговое окно «Таблица» и увидеть, что поля «Граница», «Ширина» и «Высота» также скрыты.
Как разрешить все, кроме…
Популярным требованием является разрешение всех функций HTML, кроме нескольких конкретных. В этом случае установка для CKEDITOR.config.allowedContent значения true
не является решением, поскольку это полностью отключает расширенный фильтр содержимого, поэтому CKEDITOR.config.disallowedContent также не будет работать.
Поэтому единственное решение — написать правило разрешенного содержимого, разрешающее все элементы. К счастью, это можно легко сделать, используя объектный формат разрешенных правил содержимого и объект CKEDITOR.dtd.
config.allowedContent = { $1: { // Используйте возможность указывать элементы как объект. элементы: CKEDITOR.dtd, атрибуты: правда, стили: правда, классы: правда } }; config.disallowedContent = 'скрипт; *[на*]';
Приведенный выше пример кода разрешает все, кроме элементов
и атрибутов,начиная с'on'
.