Как быстро и бесплатно узнать движок или конструктор сайта
Если вы серьёзно изучаете конкурентов или делаете ТЗ на сайт, полезно уметь определять CMS и другую начинку. Это не так сложно, нужно просто…
CMS — content management system, система управления контентом, или просто движок. Позволяет загружать информацию на сайт и настраивать его функции. Упрощает взаимодействие администратора с сайтом (для этого используется административная панель, или просто админка). Тем не менее требует навыков веб-разработки и обеспечения безопасности данных.
Конструктор — тоже платформа для создания сайтов, создания и редактирования контента, хранения данных. Разница в том, что она позволяет делать всё это вообще без знаний и опыта. Недостатки конструкторов по сравнению с CMS: меньше возможностей в плане функций и дизайна, высокая стоимость, отсутствие реального контроля (по сути вы арендуете сайт на конструкторе, а не владеете им).
Умение определять движок интернет-ресурса — а также установленные там плагины, скрипты, счётчики — пригодится не только веб-разработчикам. Интернет-маркетологу это тоже будет полезно: при анализе конкурентов, подготовке ТЗ на создание или редизайн сайта.
Ведь если нравится дизайн и функциональность какого-то действующего портала/лендинга/интернет-магазина, возможно, стоит использовать такую же систему для своего проекта. А также выбирать и подключать сторонние инструменты с учётом таковых у сайтов-конкурентов.
Узнать CMS и другое ПО на любом ресурсе можно вручную и с помощью специальных инструментов. Перечисляем самые эффективные способы.
Пишущий интернет-маркетолог, автор-фрилансер. Помогает развивать и продвигать блоги, делает контент для внешних площадок. Пишет об интернет-маркетинге, реже о финансах и бизнесе.
1. Определяем вручную
Копаемся в HTML-коде
Упоминания движка можно найти в метатеге generator, названиях плагинов, путях к важным файлам (внутри тега head), иногда в футере (подвале) сайта. Чтобы открыть исходный код, нужно кликнуть правой кнопкой мыши в любом месте страницы и нажать на «Просмотреть код» или использовать горячие клавиши Ctrl + U. Далее искать удобно уже с помощью Ctrl + F.
Ищем адрес админки
Определить движок можно также по адресу, ведущему к административной панели сайта (в народе — админка). У каждой CMS он свой. Чтобы найти админку сайта, нужно просто попробовать разные варианты.
Как настроить определение языка сайта?
2 ответа 2
Что касаемо вашего случая: У вас index и ‘.php’ в функции перенаправления лишние, да и «слэш» перед «index» не нужен. Массив у вас возвращает полностью ссылку, а вы еще и сами написали «index-» и «.php» и у вас получилось что то типа «index-index-de.php.php».
Попробуйте так (в этом случае массив вообще не нужен):
А если хотите с массивом, то так (@mepihindeveloper этот способ в комментарии вам уже предложил):
А в целом, вы уверены, что стоит для каждого языка отдельную страницу создавать? Что если у вас будет 100 страниц с разными языками и нужно будет для каждого что то добавить?
Так же php является шаблонизатором и позволяет упрощать некоторые вещи (почитайте об этом). Например header и footer можно не вставлять в каждую страницу сайте, а создать в отдельном файле и где нужно через include подключать. И так же другие повторяющиеся элементы. И получится, если вам нужно будет что то там отредактировать, то достаточно в одном файле сделать изменения, как они сработают на всех страницах.
А многоязычность на сайте я бы советовал делать через конфиги с переводами.Если интересно, вкратце опишу:
Создаете файл config.php. Я его поместил в папку configs\config.php.
Такой конфиг у меня лежит в папке languages и внутри файлы : ru.php, en.php и т. д. Пример таких конфигов, en.php:
И по ключевому слову вставляем куда нам нужно (не забываем только подключить наш конфиг в наши шаблоны). В самом вверху подключаем:
Как узнать CMS сайта?
Задавайте, а мы ответим на него в блоге.
Чтобы узнать движок другого сайта, не нужны специальные навыки, это можно сделать в окне браузера. Разбираем основные способы, как определить CMS.
Какие движки можно определить
Существует четыре вида CMS:
Коробочные движки и CMS от конструкторов сайтов можно узнать вручную или используя автоматические сервисы. Код и архитектура у них повторяются от проекта к проекту. Со студийными и самописными сложнее — у них нет открытого известного кода, из-за чего узнать их не получится.
Учитывайте, что на разных разделах сайта могут стоять разные CMS. Например, amplifir.com работает на самописной CMS, а блог (amplifir.com/blog) — уже на WordPress. Поэтому проверяйте конкретную страницу, движок которой вы хотите узнать.
Ниже — основные способы, как определиь CMS сайта.
По исходному коду страницы
В HTML-коде сайта сохраняется информация о базе и библиотеках используемой CMS. Чтобы определить платформу через код, открываем в браузере правой кнопкой мыши пункт меню «Просмотр кода страницы». Система управления выдаёт себя внутри тега head, где указаны важные файлы админки.
По файлу robots.txt
Служебный файл robots.txt используется веб-мастерами для индексации сайта в поисковых системах. Он находится в открытом доступе и зачастую содержит информацию о CMS. Чтобы перейти к файлу, откройте в адресной строке браузера ссылку вида сайт/ robots.txt.
По информации в подвале сайта
В подвале может быть указана система управления контентом. Второй способ узнать систему — обратиться к разработчикам, если они оставили ссылку на себя в футере. Так, например, можно выяснить, использует ли студия коробочную или самописную CMS.
Через автоматические сервисы
Автоматически определить CMS можно с помощью онлайн-сервисов. Эти способы подходят для сайтов-конструкторов и коробочных систем. Большинство популярных сервисов угадывают систему управления правильно.
BuiltWith. Онлайн-сервис BuiltWith без регистрации анализирует любой домен и показывает его CMS. Нужно только ввести адрес сайта, а BuiltWith быстро выдаст данные о его движке.
Сервис даёт подробный анализ, в том числе определяет систему управления контентом
WhatCMS. WhatCMS — простейший онлайн-сервис для определения системы управления контентом. В строке поиска вводим название сайта и, вуаля, получаем результат анализа без дополнительных деталей.
iTrack. Сервис iTrack определяет более 80 известных движков. Для регулярной проверки можно установить расширение для браузера.
Через расширения браузера
Если анализировать CMS нужно часто, используйте расширения для браузера. Они выдают заключение о CMS, и иногда показывают другую полезную информацию: например, об установленных приложениях и плагинах на сайте.
Wappalyzer (Chrome, Safari, Firefox). Инструмент автоматически определяет технологии, с помощью которых создан сайт. Помимо CMS Wappalyzer находит системы аналитики, библиотеки, фреймворки и т.д.
iTrack (Chrome). Уже знакомый сервис доступен через расширение браузера. Можно онлайн узнать CMS текущего сайта или вставить ссылку в окно интерфейса.
RDS Bar (Chrome, Яндекс.Браузер, Opera, Firefox). Инструмент для веб-мастеров и seo-специалистов. Новички могут запутаться в многообразии результатов анализа.
Если определить CMS не получилось
Если ни один из инструментов не смог узнать CMS, скорее всего сайт сделан на самописном или студийном движке. Чтобы убедиться в этом, стоит уточнить платформу у разработчика, указанного в подвале. Или заглянуть в раздел «Контакты» и спросить у владельца напрямую.
Грамотное определение языка пользователя

О том как отображать информацию на разных языках тут речи идти не будет. Разговор пойдет о том как определить язык пользователя, и выбрать из доступных на сайте языковых версий наиболее подходящую.
Кому лень читать — посмотрите скринкаст он правда не очень получился, поэтому тут не выкладываю.
Эта строка содержит языки пользователя, которые он предпочитает, и их приоритеты выражаются через q, ели q для языка не задано, то предполагается, что оно будет равно 1. Если постараться отобразить ее в более менее читаемом виде то она выглядит так:
Отсюда видно что я предпочитаю русский язык, а на втором месте у меня английский.
Языки написаны в двух форматах главный код языка это «ru» и «en» в моем случае, который относится к языкоывм стандартам ISO 639
И главный код языка — расширенный код языка в моем случае это «ru-ru» и «en-us» тут расширенный код языка указывает на регион использования языка у меня это United States.
Временами возникает недопонимание с тем как пометить языки, когда списки кодов ISO содержат как двухбуквенные так и трехбуквенные коды (иногда несколько трехбуквенных кодов). Сейчас все действительные коды перечислены в одном IANA реестре, который для языка принимает только одно значение из списков ISO. Если доступен двухбуквенный код ISO, то он будет один в реестре. Иначе реестр будет содержать один трехбуквенный код. Это упростит вещи.
С теорией разобрались переходим к практике:
Напишем конструктор контроллера класса:
Отсортированный по убыванию приоритета языка(значение q)
Далее создаем метод находящую наиболее подходящий язык.
Первым пареметром в нее передается язык используемый по умолчанию, вторым массив ключами которого будут языки которые есть на сайте, а значениями ссылки на него с других языков выглядит массив примерно так:
MegaIndex начал определять языки сайта для улучшения оценок ссылочных профилей и сбора данных по тИЦ
Робот от MegaIndex обходит весь интернет для сбора важных для поисковой оптимизации данных, включая данные необходимые для определения языка сайта. Данные о языке сайта применимы в поисковом продвижении.
Польза от данных о языке:
Есть простые способы определить язык сайта самостоятельно.
Способы определения языка сайта
Определить язык можно разными способами. Например:
Определение языка на основе запроса accept-language
Отправляя запрос accept-language на сайт можно получить данные о языках сайта в виде списка значений.
Документация доступна на сайте W3.
Определение языка на основе ссылок с параметром lang
Определить язык можно на основе значения параметра lang, задаваемого для тега ссылок.
Параметр lang используется редко, поэтому на глобальном индексе эффективность от использования будет низкая.
Определение языка на основе сервисов с Google, Yandex
Посредством текстового анализа в Google Translate можно быстро определить язык, но использование Google является наиболее дорогим среди способов определения языка.
Определение языка на основе тега html
Наиболее простым способом определения языка байта являются парсинг и анализ документа на предмет значения в атрибуте lang.
Согласно правилам поисковой оптимизации язык сайта должен быть указан в теге html. Пример разметки:
Список кодов стран собран в таблице.
Коды языков
| Language | Code 2 | Code 3 |
|---|---|---|
| Abkhazian | ab | abk |
| Afar | aa | aar |
| Afrikaans | af | afr |
| Albanian | sq | alb/sqi* |
| Amharic | am | amh |
| Arabic | ar | ara |
| Aragonese | an | arg |
| Armenian | hy | arm/hye* |
| Assamese | as | asm |
| Avestan | ae | ave |
| Aymara | ay | aym |
| Azerbaijani | az | aze |
| Bashkir | ba | bak |
| Basque | eu | baq/eus* |
| Belarusian | be | bel |
| Bengali | bn | ben |
| Bihari | bh | bih |
| Bislama | bi | bis |
| Bosnian | bs | bos |
| Breton | br | bre |
| Bulgarian | bg | bul |
| Burmese | my | bur/mya* |
| Catalan | ca | cat |
| Chamorro | ch | cha |
| Chechen | ce | che |
| Chinese | zh | chi/zho* |
| Church Slavic; Slavonic; Old Bulgarian | cu | chu |
| Chuvash | cv | chv |
| Cornish | kw | cor |
| Corsican | co | cos |
| Croatian | hr | scr/hrv* |
| Czech | cs | cze/ces* |
| Danish | da | dan |
| Divehi; Dhivehi; Maldivian | dv | div |
| Dutch | nl | dut/nld* |
| Dzongkha | dz | dzo |
| English | en | eng |
| Esperanto | eo | epo |
| Estonian | et | est |
| Faroese | fo | fao |
| Fijian | fj | fij |
| Finnish | fi | fin |
| French | fr | fre/fra* |
| Gaelic; Scottish Gaelic | gd | gla |
| Galician | gl | glg |
| Georgian | ka | geo/kat* |
| German | de | ger/deu* |
| Greek, Modern (1453-) | el | gre/ell* |
| Guarani | gn | grn |
| Gujarati | gu | guj |
| Haitian; Haitian Creole | ht | hat |
| Hausa | ha | hau |
| Hebrew | he | heb |
| Herero | hz | her |
| Hindi | hi | hin |
| Hiri Motu | ho | hmo |
| Hungarian | hu | hun |
| Icelandic | is | ice/isl* |
| Ido | io | ido |
| Indonesian | id | ind |
| Interlingua (International Auxiliary Language Association) | ia | ina |
| Interlingue | ie | ile |
| Inuktitut | iu | iku |
| Inupiaq | ik | ipk |
| Irish | ga | gle |
| Italian | it | ita |
| Japanese | ja | jpn |
| Javanese | jv | jav |
| Kalaallisut | kl | kal |
| Kannada | kn | kan |
| Kashmiri | ks | kas |
| Kazakh | kk | kaz |
| Khmer | km | khm |
| Kikuyu; Gikuyu | ki | kik |
| Kinyarwanda | rw | kin |
| Kirghiz | ky | kir |
| Komi | kv | kom |
| Korean | ko | kor |
| Kuanyama; Kwanyama | kj | kua |
| Kurdish | ku | kur |
| Lao | lo | lao |
| Latin | la | lat |
| Latvian | lv | lav |
| Limburgan; Limburger; Limburgish | li | lim |
| Lingala | ln | lin |
| Lithuanian | lt | lit |
| Luxembourgish; Letzeburgesch | lb | ltz |
| Macedonian | mk | mac/mkd* |
| Malagasy | mg | mlg |
| Malay | ms | may/msa* |
| Malayalam | ml | mal |
| Maltese | mt | mlt |
| Manx | gv | glv |
| Maori | mi | mao/mri* |
| Marathi | mr | mar |
| Marshallese | mh | mah |
| Moldavian | mo | mol |
| Mongolian | mn | mon |
| Nauru | na | nau |
| Navaho, Navajo | nv | nav |
| Ndebele, North | nd | nde |
| Ndebele, South | nr | nbl |
| Ndonga | ng | ndo |
| Nepali | ne | nep |
| Northern Sami | se | sme |
| Norwegian | no | nor |
| Norwegian Bokmal | nb | nob |
| Norwegian Nynorsk | nn | nno |
| Nyanja; Chichewa; Chewa | ny | nya |
| Occitan (post 1500); Provencal | oc | oci |
| Oriya | or | ori |
| Oromo | om | orm |
| Ossetian; Ossetic | os | oss |
| Pali | pi | pli |
| Panjabi | pa | pan |
| Persian | fa | per/fas* |
| Polish | pl | pol |
| Portuguese | pt | por |
| Pushto | ps | pus |
| Quechua | qu | que |
| Raeto-Romance | rm | roh |
| Romanian | ro | rum/ron* |
| Rundi | rn | run |
| Russian | ru | rus |
| Samoan | sm | smo |
| Sango | sg | sag |
| Sanskrit | sa | san |
| Sardinian | sc | srd |
| Serbian | sr | scc/srp* |
| Shona | sn | sna |
| Sichuan Yi | ii | iii |
| Sindhi | sd | snd |
| Sinhala; Sinhalese | si | sin |
| Slovak | sk | slo/slk* |
| Slovenian | sl | slv |
| Somali | so | som |
| Sotho, Southern | st | sot |
| Spanish; Castilian | es | spa |
| Sundanese | su | sun |
| Swahili | sw | swa |
| Swati | ss | ssw |
| Swedish | sv | swe |
| Tagalog | tl | tgl |
| Tahitian | ty | tah |
| Tajik | tg | tgk |
| Tamil | ta | tam |
| Tatar | tt | tat |
| Telugu | te | tel |
| Thai | th | tha |
| Tibetan | bo | tib/bod* |
| Tigrinya | ti | tir |
| Tonga (Tonga Islands) | to | ton |
| Tsonga | ts | tso |
| Tswana | tn | tsn |
| Turkish | tr | tur |
| Turkmen | tk | tuk |
| Twi | tw | twi |
| Uighur | ug | uig |
| Ukrainian | uk | ukr |
| Urdu | ur | urd |
| Uzbek | uz | uzb |
| Vietnamese | vi | vie |
| Volapuk | vo | vol |
| Walloon | wa | wln |
| Welsh | cy | wel/cym* |
| Western Frisian | fy | fry |
| Wolof | wo | wol |
| Xhosa | xh | xho |
| Yiddish | yi | yid |
| Yoruba | yo | yor |
| Zhuang; Chuang | za | zha |
| Zulu | zu | zul |
Практика
Наиболее эффективными и дешевыми способами самостоятельного определения языка являются анализ html и http-запрос.
MegaIndex обладает глобальным индексом. Применяя полученные данные на практике, MegaIndex совершенствует систему закупки ссылок и приложения сервиса.
Список поддерживаемых языков:


















