• Как сделать редирект в .htaccess с языка на главную без изменения остальной структуры сайта?

    shambler81
    @shambler81 Куратор тега htaccess
    очень долго пытался понять что вы пытались сказать
    В общем все сделать можно
    частный случай должен распологаться выше общего, так же не забывайте о возможности отрицания знаком !

    RewriteRule ^ru/katalog\.html$ /? [L,R=301]
    это правило редиректит ру каталог на слеш

    RewriteRule ^ru/$ /? [L,R=301]
    Ответ написан
    Комментировать
  • Как удалить GET параметр из url при помощи файла .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    это если тебе нужен любой из гет параметров
    RewriteCond %{QUERY_STRING} (?:^|&)id\=(.*)(?:$|&)
    RewriteRule ^employeedb3/id$ https://employeedb3/%1? [L,R=301]

    ну и частный случай
    RewriteCond %{QUERY_STRING} (?:^|&)id\=(id_000001)(?:$|&)
    RewriteRule ^employeedb3/id$ https://employeedb3/%1? [L,R=301]


    %1 это не опечатка, это первая группа из RewriteCond
    Ответ написан
  • Как настроить DKIM на BitrixVM 7.5?

    Если у вас классическое построение битрикс VM msmtpd в роли почтового сервера, то за DKIM отвечает тот сервис который обрабатывает почту.
    Например яндекс коннект, там и DKIM настраивайте.
    Ответ написан
  • Как найти в каком файле нужная настройка?

    find  /etc/apache2 -type f -exec grep -l "тут нужный текст" {} \;

    find искать
    /etc/apache2 от какой папки
    -type f -только файлы
    -exec -с найденным путем выполнить команду
    grep - поиск по тексту
    - l принтуем вывод не того что нашли а файла в котором нашли
    "искомый текст"
    {}- полставить путь из find
    \;-закрываем и экранируем.

    на выходе нужный нам результат, будут отображаться пути к файлам в этой папке в которых упоминался наш текст.
    Ответ написан
  • Как сделать редирект с множественных слешей на главную?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{THE_REQUEST} //
       # Проверяем, повторяется ли слеш (//) более двух раз.
    RewriteCond %{QUERY_STRING} !http(s|)://
      # Убедимся что это не урл в  GET
    RewriteRule .* /$0 [R=301,L]
       # Исключаем все лишние слеши.
    Ответ написан
    Комментировать
  • Почему не восстанавливает коробочная версия Битрикс24?

    писал тут
    https://klondike-studio.ru/blog/bitrixtar/
    так распаковывай и смотри
    Так же при переносе архива лучше создавать его не средствами битрикс
    или как минимум с проверкой архивов.
    На моей памяит 400 гб нам архив делали ( перенос с облака в коробку ) 5 раз и ни разу он не приходил полным, находились косяки, так что пришлось запрашивать архив созданный с консоли.
    Поскольку отакие большие (а б24большой) архивами это часто бывает.
    Так же не забывай что битрикс вм по умолчанию настроена для б24 в папке /home/bitrix/www и плохо работает в ext_www
    Ответ написан
  • Как в htaccess сделать редирект по регулярному выражению?

    shambler81
    @shambler81 Куратор тега htaccess
    По идее это должно было быть вот так
    RewriteCond %{QUERY_STRING} (?:^|&)route\=product/product(?:$|&)
    RewriteCond %{QUERY_STRING} (?:^|&)path\=([0-9]+)(?:$|&)
    RewriteCond %{QUERY_STRING} (?:^|&)product_id\=([0-9]+)/specification(?:$|&)
    RewriteRule ^index\.php$ /index.php?route=product/product&path=%1&product_id=%2 [L,R=301]


    Где %1 и %2 это аналог $1 и $2 из RewriteRule
    но проблема в том что у тебя два запроса и тут придется делать это как-то по другому поскольку сработает толкьо $1 и будет он 894 поскольку группы из предидущего конда будут стерты.

    так что думаю это можно сделать или через %{THE_REQUEST}
    где можно выделить сразу оба параметра
    Ну или просто в 404.php поставить регулярку.
    Так будет даже наверное лучше, только чтоб 404 отдало после регулярки а не до .

    тут я более детально описывал как это сделать.
    но товарищ говорит что у него не заработало, хотя у меня на тесте все работало, почитай там в коментах я давал более правильный ответ.
    https://qna.habr.com/q/1041262#answer_2012466
    если не получится, то пиши придётся создавать тестовой стенд ;)
    Ответ написан
  • Ubuntu Server- Read-only filesystem?

    shambler81
    @shambler81 Куратор тега Linux
    Покажите ваш фстаб ?
    /etc/fstab
    А потом почитайте что такое
    errors = remount -ro
    Собственно все что вам нужно заменить errors = remount -ro на defaults и перезагрузитья
    ну и проверить диск на логические и физические ошибки.
    Вернуть все на место, или так и оставить
    Ответ написан
    2 комментария
  • Как с помощью SED вставить слово в кавычках?

    Ответ написан
    Комментировать
  • Почему не работает 301 редирект Godaddy?

    1.если вы купили домен и хотите его склеить с другим, ему не нужен хостинг, делигируйте его на тот-же сервер где и основной домен.
    2.Создайте соответствующую днс зону
    3.В настойках веб панели основного домена укажите "зеркало"
    Как правило это где-то в настройках там где добавляется www
    через пробел укажите свой новый домен.
    В результате в конфиге апачь или nginx будет что-то вроде.
    server {
            listen *:80;
            server_name klondike-studio.ks03.ru www.klondike-studio.ks03.ru   ;
            root /var/www/klondike-studio.ks03.ru/web;


    и у сайта будет сразу несколько доменов.
    И редиректор удобно будет настраивать не на 10 сайтах
    а в одном конфиге.

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^Godaddy \.com
    RewriteRule ^(.*)$ http://kraudmarketing.com/$1 [R=301,L]
    Ответ написан
    Комментировать
  • Написать регулярное выражение удаление превого слова?

    самый простой вариант развести бренд и
    https://regex101.com/r/7KXqvk/1
    $1 Бренд
    $2 Модель
    Ответ написан
    Комментировать
  • Динамическая переменная в .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    Вше решение само по себе странное, бэк или должен иметь статический айпи или DNS пусть даже техническое.
    Третий вриант это явно костыли.
    Да на bash это будет одна строчка но это костыль притом какой-то конский.
    Может вы решите проблему с бэк серверами.
    Если это что-то серьезное там есть привязка днс
    если нет то с чего бы они меняли айпи ?
    если это домашняя заготовка, камон 100 рублей в месяц заплати за айпи.
    поверь костыль этого не стоит.
    Опиши более детально приину почему бэки меняются есть ли у тебя до них доступ, есть ли АПИ и как ты собирая отслеживать их динамические айпи пусть даже в теории.
    Ответ написан
    5 комментариев
  • Как сделать полный бекап сайта через rsync?

    shambler81
    @shambler81 Куратор тега Linux
    на сервер куда передаешь создадим папочку mkdir /tmp/11
    tar cvfz - /var/www/site.ru/ |ssh root@111.111.111.111  "cd /tmp/11;tar xvfz -"


    собственно все!
    сайт переехал и уже в распакованном виде при этом архив не занимал места нигде ни на том ни на том сервере, но тем не менее через интернет передавался в 1 файле.

    tar cvfz - /var/www/site.ru/- Архивировать папочку
    | передать
    ssh root@111.111.111.111  "cd /tmp/ - на другой сервер

    ;tar xvfz -" распаковать.

    В результате сайт будет паковаться и передаваться на сторонний сервер в архиве, то есть не по 1 файллу а в архиве.
    Но сохраняться он будет сразу на той стороне, при этом каждый файл будет сразу и распаковываться.
    То есть он будет передаваться со скоростью передачи 1 ффайла ( быстро) но при этом бэкапа как такового не будет существовать
    Ответ написан
    6 комментариев
  • Как правильно сформировать URL с utm-метками и переменными сортировки?

    никак, на сайте не должно быть страниц с ГЕТ параметрами. ( UTM не в счет)
    Вамо нужно настроить нормальне чпу
    А мусорные страницы типа товар красный размер31 с ценой от35-до100 для дома, смело можно исключать из индекса.
    По факту должны остаться раздел и элементф инфоблоков.
    все с настроеным SEO модулем.
    плюс пара статических index но там свои настройки.
    Остальные страницы просто запретитьк индексации напрочь. ( как правило весь смарт фильтр, заказы обращения ит тд)
    в таком случае не будет и проемы.
    А уж странички с указанием сортировки сверху вниз или снизу вверх, индексироват вообще дебилизм.
    Вы про канибализацию запросов слышали ?
    Тем более у вас там бдут полностью неуникальные тайтлы и дескрипшены)
    И да пейдженацию тоже блокировать от индекса, качать только 1 страничку.
    Вплоть до внесение в хедер риал каноникал на текущую страницу удалив гет прамметры
    Ну и запрет в роботс и сайтмап индексировать все гет параметры, дабы небыло желания.
    и все что у вас будет в гет параметрах то UTM в купе с запретом на их индексацию.
    Ответ написан
  • Как прописать в договоре на создание сайта, что таким подобным проектом мы заниматься не будем?

    Данный пункт договора будет признан "нечтожным" любым судом.
    наложение обязательств на физ лицо - это рабство, а он в стране запрещено. Как Юр лицо я вообще плохо себе представляю такую форму договора по которому вы самограничите свои права предпринимательской детятельности выходящих за рамки текущего договора.
    Все договора должны работаь в разках закона РФ
    Закон напрямую вас не может ограничить в праве работать с любым подрядчиком.
    Так что с юристом составьте договор, но этот пункт будет нечтожен при любом варианте его написания.( так что смело можно тут же нарушать)
    Это требование с области "гардероб ответственности не несет" ( ответственное материальное хранение)
    Писать ты можешь че угодно но от закона это не спасет.
    В вашем случае этот пункт будет нечтожным.
    Ответ написан
    8 комментариев
  • Регулярное выражение, после числа, нет букв?

    Alexandroppolus
    (\d+)(?!\d*[a-z])


    (\d+)(?!\d*\w$) a-z думаю можно смело поменять, ну и добавить $
    на всякий
    но можно еще короче
    (?=\d+$)\d+
    или даже
    (?=\d+$).+
    Думаю это может пойти за самое простое решение
    Ответ написан
  • Как в Битриксе настроить редирект ссылок без слеша в конце на с ним?

    shambler81
    @shambler81 Куратор тега htaccess
    Владислав Старцев,
    уже много раз вижу такую шляпу
    кто вообще придумал этот редирект ?
    RewriteCond %{REQUEST_URI} !\?
    ? - не может физически быть в %{REQUEST_URI} поскольку не является частью урла
    собственно как и RewriteCond %{REQUEST_URI} !\&
    & - выделяется через RewriteCond %{QUERY_STRING}
    По факту все что тут работает
    RewriteCond %{REQUEST_URI} !\=
    Если не =, но простите а причем тут равно ? Скорее всего тот "мастер" что придумал сей редирект думал о GET параметрах, но они как я и говорил выше не попадают в REQUEST_URI
    Если не точка, а простите причем тут точка ?
    И того 2 условия в принципе не выполнимы
    2 из них идиотские и не удовлетворяют тз

    Все что остается это предпоследнее не слеш в конце
    И сам реврайт рул.
    То есть из всего правила работает 10% остальные 90% это мусор идиота

    Теперь разберемся
    Как бы это должно было быть на самом деле
    Тут все сложнее поскольку есть пара условий в которых нельзя убирать слеш.
    RewriteCond %{REQUEST_URI} \..+$
       # Если файл содержит точку.
    RewriteCond %{REQUEST_FILENAME} !-d
       # И это не директория.
    RewriteCond %{REQUEST_FILENAME} -f
       # Является файлом.
    RewriteCond %{REQUEST_URI} ^(.+)/$
       # И в конце URL есть слеш.
    RewriteRule ^(.+)/$ /$1 [R=301,L]
       # Исключить слеш.


    Оданко не все так просто, сематнически правильно именно закрывать слешем
    НА СЕО не влияет ни то ни то, это 100% инфа, влияет отсутствие редиректов с одного на другое что может дать два урла.
    НО какой именно урл со слешем или нет, не влияет!

    НО семантически URL должне быть закрыт
    однако слеш после имени файла дает 404, если это просто файл.
    Так что нам нужно разделить реальные файлы и урлы созданые ЧПУ

    добавив вот такое правило.
    ############################################################################
    #### Добавляем слеш(/), если его нет, и это не файл.                    ####
    ############################################################################
    RewriteCond %{REQUEST_URI} !(.*)/$
       # Если слеша в конце нет.
    RewriteCond %{REQUEST_FILENAME} !-f
       # Не является файлом.
    RewriteCond %{REQUEST_URI} !\..+$
       # В URL нет точки (файл).
    RewriteCond %{REQUEST_URI} ^(.+)$
     # В URL есть хоть один символы
    RewriteRule ^(.*)$ $1/ [L,R=301]
       # Добавляем слеш в конце.


    И того сразу два правила, притом именно в такой последовательности должны быть в .htccess
    за врея работы я видил много горе СЕО специалистов рекоменующие вот такие шляпы, да и редиректы 90% которого не может сработать физически.
    так же часто видил удаление аперкейсов в урлах ( чего разумеется тоже делать нельзя)
    редиректы на хтмл мативируя тем что гугл думает что это статика и лучше их валидирует и тд и тп.
    Все это лечится одним, удалением этого сотрудника и наемом более квалифицированного сеошника, а не плавающего товарищя в анабиозе.
    Ответ написан
    6 комментариев