Задать вопрос
  • Как имея большой текст, найти совпадения всех предложений?

    @granty
    Роман Сарваров, статья https://habr.com/ru/company/alconost/blog/339894/ прокрутить до заголовка Как все это сделать НА ПРАКТИКЕ?. Там приведена куча инструментов и библиотек для организации поиска, и есть список литературы о теории этого дела.

    Скорее всего вам придётся строить инвертированный (обратный) индекс, как у Поисковых Систем, но привязывать его не к URL страниц, а к номеру записи в БД.
  • Как имея большой текст, найти совпадения всех предложений?

    @granty
    1. Вам же не надо выделять сотни тысяч совпадений, выделять надо только те, которые будут выведены на экран пользователя.
    Поэтому задача разбивается на 2:
    - поиск совпадений и их постраничный вывод
    - подсветка результатов вывода
    именно так и делают ПС.

    2. Морфологию надо учитывать? "способ" -> "способы" -> "способов" -X-> "способности"

    3. Семантику надо учитывать?
    За песчанной косой,
    косоглазый косой,
    пал под острой косой
    Косой бабы с косой.

    какое из слов "косой" собираетесь выделять?

    4. "Расстояние" между словами надо учитывать? "пластиковая карта" == "пластиковая банковская карта" или нет

    5. Синонимы надо учитывать? "компьютер" == "ПК" или нет?
  • Выйдет ли такой сайт в поисковую выдачу или уйдет в бан как дубликат основного?

    @granty
    Пума Тайланд, вы сильно заблуждаетесь, как на счёт "структуры", так и на счёт "вёрстки". Учитывается, и очень сильно.

    Одной вёрсткой можно сильно изменить сниппет в выдаче.
    Без адаптивной вёрстки не попасть в мобильную выдачу.
    На ПС повлияет даже смена вёрстки с <div> на <span style='display:block'>.

    Отдельная папка сайта могла быть занесена в каталог Яндекса как самостоятельный сайт с отдельным ТИЦ.
    К папке сайта (как и к поддомену) может быть сделана региональная и языковая привязка. Без поддоменов или папок мультирегиональный и многоязычный сайт не сделать в принципе.
  • Как быть с Российскими ip при попытках брутфорса?

    @granty
    Алексей Тутубалин, нет, конечно, хостеру писать не стоит. Баньте сами в .htaccess, который лежит в папке /admin/

    Завтра с этих IP придут нормальные пользователи, те банить надо только вход в админку, а не весь сайт.
    И, лучше сделать белый список разрешённых IP, он - конечен, тогда как чёрный - бесконечен.

    PS: Против брутфорса хорошо помогает рекапча и ограничение доступа в единицу времени.
  • Ограничение доступа через .htaccess, разрешаем доступ только однму ип, чет не выходит, как реализовать?

    @granty
    wisgest, да, IP Cloudflare должен быть последним в списке (или единственным).
    Но в статье https://habr.com/ru/post/177113/ пишут:
    Но в нашем случае настройки не были до конца корректными и весь HTTP_X_FORWARDED_FOR заменялся заголовком от браузера x-forwarded-for

    то есть, содержимое сильно зависит от настройки прокси.

    И как пишут на phpfaq.ru/tech/ip#notes - ещё и от хостера может зависеть.

    PS: И, если узнать реальный IP сервера, к нему можно обратиться в обход клаудфларе, и подсунуть свой заголовок X-Forwarded-For.
  • Как получить выборку Mysql если в поле есть нужный ID?

    @granty
    FanatPHP, в его конкретике индексы не нужны:
    таблице "Акции" к каждой акции было привязано 1 или больше ID книг. А потом доставать все акции где есть книга с определенным ID

    Сколько у него будет таких акций: 100 - 1000, не более.


    Emmet1, а вы подумали, как будете исправлять JSON в поле `BookID` таблицы акций при удалении книги с ID? При вашей организации данных в БД, придётся делать второй костыль - редактировать поле JSON как строку в поле `BookID`.
  • Почему не работают якоря?

    @granty
    Александр я же не в упрёк вам!
    Просто обратить внимание тех, кто не обращал внимание, что ? (незакодированных) в url может быть много, и только первый считается разделителем query-string, а остальные - просто символ '?', являющийся частью имени или значения параметра.

    URL <a href='??r=8'>тест</a> вполне себе валидный, просто $_GET на сервере будет [?r] => 8
    И так же валиден URL <a href='?r=8?n=ok'>тест</a> - $_GET на сервере будет [r] => 8?n=ok
    Оно вроде как незачем делать такие URL, но допустимо по RFC.

    А после фрагмента # - вообще допустимо писать что угодно.

    PS: Я сам не знал об этом, а когда случайно наткнулся - пришлось переделывать свои парсеры url.
  • Почему не работают якоря?

    @granty
    Александр
    а знака вопроса не должно быть после хэша.
    Так было в HTML4.01.
    HTML5 допускает в фрагменте любые символы (rfc3986)
    В Id='...' HTML5 также допускает практически любые с....

    PS: я проверил, фрагмент #some? прокручивает на элемент с id='some?' даже если указан
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    от HTML4
  • Как создать удобный и незаметный редирект со своего сайта на сайт магазина?

    @granty
    Насколько я понял цель привлечь кого-то один раз через контекстную рекламу и получать потом от него фиксированный процент, как от клиента изначально недостижима?
    Достижима, если вы будете всегда пропускать клиентов через свой лендинг, и они не будут работать с магазином мимо вас.

    У вас между пунктами 2 и 3 есть неувязка:
    - если вы вы передаёте заявку в магазин - технически, вы для него являетесь покупателем, а не ваш клиент.
    - есть вероятность, что менеджер-консультант любого магазина будет уговаривать клиента работать напрямую мимо вас. И давать скидки.

    Но вы можете получить с магазина скидку за опт, если у вас много покупателей. Это все надо бы выяснять с конкретными магазинами.
  • Как создать удобный и незаметный редирект со своего сайта на сайт магазина?

    @granty
    Человек пришёл через Яндекс-рекламу и купил, а если он потом снова покупает , то чья по справедливости комиссия с будущих покупок ?
    По сложившейся практике, с последующих покупок комиссию не платят. И сложно отследить, и не "справедливо".
    Вы же тоже не собираетесь платить директу "комиссию с последующих покупок", а этого покупателя к вам привёл он.

    их логично аккумулировать в своём Инстаграм или в приложении , а потом перенаправлять на сайт продавца, ведь он возможно не один
    Логично. Только у инстаграма возможности показа и выбора товаров слабее, чем у отдельного сайта. И аккаунт могут забанить "ни за что'.
  • Как сделать счетчик нажатий на кнопку для всех на сайте?

    @granty
    Тот случай, когда реально написать код будет быстрее, чем рассказывать непрофессионалу как это можно сделать.
  • Рекламная сеть для подмены на страницах?

    @granty
    Pavel K, в принципе, сети WiFi в московском метро и сотовые операторы вставляют свою рекламу таким же способом, как хотите сделать вы (только в https: пока не лезут).

    Их контролирующие органы не трогают, понятно почему. Вам же надо быть очень аккуратным, один "наезд" РКН обнулит всю рентабельность затеи.

    Мысль про страницу с заглушкой - здравая. У буржуев многие бесплатные WiFi требуют "бесплатно залогиниться" на их странице с рекламой. И потом периодически надо перелогиниваться.

    На таких страницах, скорее всего, можно и Адсенс с Директом размещать.

    И ещё посмотрите рекламные сети купонов и скидок - там вполне приличная реклама купонов, и люди хорошо реагируют на скидки (я добавил это в основной ответ, чтобы было на виду).
  • Скрытый текст для поиска?

    @granty
    Попадает - я люблю пользоваться спойлерами на хабре, можно поизучать ранжирование скрытого текста вживую.
  • Зачем резистор на вход? Как выбираются значения сопротивлений и резисторов?

    @granty
    Емкости для фильтрации, как я понимаю. Зачем резистор на вход?

    RC-фильтр без резистора не работает. Пульсации напряжения гасятся именно на резисторе.
    Номиналы(значения) должны выбираться про условию резонанса частоты (на одной из гармоник, обычно 1-я или 3-я). Формулы надо искать конкретно для вашей схемы, для другой они будут другие.
  • Какие есть способы увеличения трафика из поисковика?

    @granty
    Zimaell, новости появляются в поиске через несколько минут/часов, обратите внимание на подчеркнутое зелёным:
    Новостные сайты в выдаче
    5e5d37eecfa63482169107.jpeg


    У поисковых систем есть "быстророботы" (быстроботы). Если ПС определит, что сайт - "новостной" быстроботы с него просто не вылязят.
    То, что проиндексировал "быстробот" - сразу попадает (подмешивается) в выдачу, не дожидаясь внутреннего апдейта базы поисковика.
    Поэтому ранжирование свежих новостей происходит без учета внешних и внутренних ссылок (методом подмешивания в выдачу). После внутреннего апдейта базы поисковика (что напроиндексировали его роботы) - "новость" начинает ранжироваться по общему алгоритму. Но к этому времени она устаревает - народ ищет уже более свежие новости.

    Я поэтому и сказал - не слушайте СЕОшников, 70% из них не понимают предмета, но хотят заработать.
    Ида, я тоже "местами" СЕОшник, с 14-летним стажем :)

    PS: Я продублировал этот текст в основном ответе
  • Какие есть наиболее простые адаптивные шаблоны?

    @granty
    Я так понимаю, бутстрап - это только техническая разметка страницы. "Красивый дизайн" к ней надо прикручивать отдельно, и при этом можно потерять всю "адаптивность".
  • Как сделать https на сервере?

    @granty
    ince,
    С mod_cloudflare будут работать все способы статистики по логам.
    Без него - только городить костыль на PHP, CF присылает реальный IP в поле $_SERVER["HTTP_CF_CONNECTING_IP"].

    вопрос решился, запустил на 80 порту http-серв и на 443-https, и сделал перенаправление с http на https.
    Вы сделали что-то не так, у меня http:-сервер работает за Клаудом (правда, на Apache). CF используется чисто как https:-прокси для http:-сервера, всё как написал dimonchik2013 в первом камменте.
  • Как сделать https на сервере?

    @granty
    ince,
    у меня от клауда только сертификат.
    я же должен своему серверу как-то дать сертификат, иначе какой в нем смысл
    На вкладке DNS нажми на серое облачко чтобы оно стало оранжевым, и cloudflare будет проксировать внешние HTTPS:-запросы в HTTP:. На твой сервер будет прилетать только http: // (те SSL на сервере не потребуется):
    5e5bb241ba2b8743552285.jpeg

    НО:
    1. если на сервере не установлен mod_cloudflare, в логах веб-сервера будут IP Cloudflare, а не реальных посетителей.

    2. независимо от "установленности" mod_cloudflare:
    - на сервере перестанет работать ip firewall, потому что все посетители будут с IP Cloudflare.
    - переменная $_SERVER['HTTPS'] будет врать, реальный протокол посетителя надо будет смотреть в $_SERVER['HTTP_X_FORWARDED_PROTO'

    3. Cloudflare начнёт автоматически кэшировать сайт. То есть, вы меняете скрипт/картинки/стили CSS, но минимум в течение 30 минут не увидите изменений (см вкладку Caching).

    4. У меня сложилось личное впечатление, что CF в режиме проксирования трафика начинает периодически тормозить и говорить, что сайт недоступен.
    Походу, хочет чтобы я перешёл на платный тариф.
  • Как отобразить соответствия массива php?

    @granty
    Яркий пример того, что: Программирование - это не только знание языка, но и правильная организация данных.
  • Что должно быть в чек-листе для успешного SEO в Яндексе и Google?

    @granty
    В вашей статье кое-что "недожёвано":
    4) - некорректен

    8) - некорректен, "смешанное содержание" (в оригинале - mixed content) это не то, о чём там написано.
    В некоторых случаях требуется одновременное наличие на сайте HTTP: и HTTPS:-страниц.

    9) тема ЧПУ не раскрыта. Кстати, у вас в блоге ЧПУ неправильное:5e57af7f42596305208880.jpeg
    А вот как выглядит правильное ЧПУ:
    5e57b1c3cdc07977037248.jpeg

    14. некорректно, адаптивная вёрстка не является фактором ранжирования.

    18. паровоз и вагоны переставлены местам. Как вы присвоите регион до того, как сайт запущен (проиндексирован ПС)? то же самое касается п 16. и 17.

    19. как можно проверить ещё не запущенный сайт на наличие в Яндекс.Справочнике и Google Мой Бизнес?

    А если говорить о полном чек-листе - вот SEO чек-лист на 68 пунктов :)