Задать вопрос
  • Как написать батник?

    Комментировать
  • Как сделать правильный htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteRule (.*)\.json$ $1\?json [R=301,L]
    Ответ написан
  • Не поднимается nginx после обновления centos?

    Отключи гео айпи вообще запусти сайт, и апай модуль
    ну или
    https://jaranguda.com/nginx-error-geoip-version-10...
    В общем инфы в интернете много.
    Ответ написан
    Комментировать
  • Как убрать повторяющиеся слэши (они же %2F) в конце url?

    shambler81
    @shambler81 Куратор тега htaccess
    Все до тупости просто это не урл
    GET - не является частью урла
    Соответственно вы и не можите сделать простой редирект.

    Так бы оно выглядело ровно по тз
    http://www.domain.ru/works/4/?photos=3409
    RewriteCond %{QUERY_STRING} (^|&)photos\=3409%2F%2F%2F%2F%2F%2F%2F%2F%2F%25($|&)
    RewriteRule ^works/4/$ /works/4/\?photos=3409 [L,R=301]

    Но насколько я понимаю вам нужно отрезать не просто текущий урл а все слеши, хотя непонятно что они вообще там делают.

    RewriteCond %{QUERY_STRING} (^|&)photos\=([0-9]{1,}).*($|&)
    RewriteRule ^works/4/$ /works/4/\?photos=%2 [L,R=301]
    И так по порядку
    (^|&)...($|&) - просто гет запрос он может бытьне первым а вторым следовательно можен или начинаться или заканчиваться с? или & так что можно обойтись и без этого.
    photos\= Равно экранируем
    [0-9]{1,} - от нуля до 9, повторить один раз и более
    (..) скобки групируют если группы из RewriteRule - ' это $1$2 и тд по номеру группы
    То они же из cond будут %1%2 соответственно ты видешь что photos=%2 - это то что будет в конде во второй скобке.
    Ответ написан
    6 комментариев
  • Как включить mbstring?

    Все достаточно просто.
    1. Зайди в phpinfo ( в самом битриксе тоеж вывод есть) и посмотри какой именно ini файл используется.
    (не с консоли там он может отличаться)
    Там написан полный путь до php.ini.
    2. Если у тебя nginx то .htaccess работать не будет.
    3. В дебиане несколько php.ini от 3 штук, так что возможно вы правили не в том. В конце концов .htaccess
    Ответ написан
    Комментировать
  • Какой выбрать хостинг и план для размещения веб сайта который в день будет посещать 50 человек?

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

    любой веб сервис с легкостью размещяется на одном айпи
    nginx apache и тд распределют сайты не по айпи или порту а по http заголовку.
    ТАк что 100 сайтов на одном айпи это вполне норм.
    Ответ написан
    Комментировать
  • Как настроить ЧПУ в Битрикс, чтобы рабочей была только одна ссылка?

    shambler81
    @shambler81 Куратор тега 1С-Битрикс
    Ну для этого вам лучше переработать структуру вообще.
    По сути для сео требуется наличие товара в мультикатегориях
    ТАких как
    /красный/товар1
    /для дома/товар1
    /samsung/холодильник/товар1
    и тд
    В общем это не уникальное явление когда товар должен лежать в разных категориях
    А урл с точки зрения сео естественно должен быть один
    В таком случае решение достаточно простое
    1. Вы складываете весь товар на первый уровень
    /catalog/tovar1
    А секциями строити всю древовидную структуру.
    Все что остается это в карточке твоара привязать его к тем секциям в которых он лежит.
    ТАйтл дескрипшен и тд все берется с секции
    Барера и тд уникализация страниц от туда же
    Так же встанет вопрос о отсутствие анонса и деталки у скции
    Я использую текстовые разделители дабы анонс сделать над контентом а детал под ним
    ##тут разделитель##
    Собственно все.
    В таком случае у вас будут урлы
    /catalog/samsung/green/
    но товар будет находиться
    /catalog/tovar1
    он же будет находиться в
    /catalog/holodilniki/small
    и ссылка опять же на товар
    /catalog/tovar
    Пример mydefile.ru
    Ответ написан
    Комментировать
  • Что лучше для интернет-магазина bitrix или opencart?

    shambler81
    @shambler81 Куратор тега 1С-Битрикс
    Битрикс по популярности находится на 4 месте в мире, притом после 3 бесплатных.
    И он заточен под ИМАГ
    инструментария в нем более чем достаточно.
    Но это как сравнить фотошоп и pbrush одно лучше н о тяжелее второе проще и дешевле.
    Ответ написан
    44 комментария
  • Как сделать редирект в htaccess с динамического поддомена с www на поддомен без www?

    shambler81
    @shambler81 Куратор тега 1С-Битрикс
    RewriteCond %{ENV:HTTPS} on
        #проверяем сайт сейчас доступен по https
    RewriteRule .* - [E=SSL:s]
        #То создаем переменную  ssl с текстом "s" ну нет в заголовках текста https так что приходится изголяться
    
    RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
        # Проверяем, содержит ли домен www в начале URL. 
    RewriteRule ^(.*)$ http%{ENV:SSL}://%1/$1 [R=301,L]
        # Перенаправляем удаляем www, и тут подставляется s если первое условие сработало
    Смысл замуты в том чтоб перекинуть ссылку с сохранением протокола.
    Склейка на http >https отдельным правилом.
    В вашем случае если они уже определены то из условия можно удалить это правило.
    Ответ написан
    4 комментария
  • Как добавить редирект с www на no-www, если есть https и subdomain типа first.next.com?

    ############################################################################
    #### Выбор основного зеркала (с www или без www)                        ####
    ############################################################################
        # 1. Удалить www
    #RewriteCond %{ENV:HTTPS} on
        #Если включен https
    #RewriteRule .* - [E=SSL:s]
        #То создаем переменную  ssl с текстом s
    #RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
        # Проверяем, содержит ли домен www в начале URL.
    #RewriteRule ^(.*)$ http%{ENV:SSL}://%1/$1 [R=301,L]
        # Перенаправляем удаляем www
    
        # 2. Добавить www
    #RewriteCond %{ENV:HTTPS} on
        #Если включен https
    #RewriteRule .* - [E=SSL:s]
        #То создаем переменную  ssl с текстом s
    #RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
        # Если нет www в начале домена
    #RewriteRule ^(.*)$ http%{ENV:SSL}://www.%{HTTP_HOST}/$1 [R=301,L]
        #Подставляем www и https если он включен.
    
    ############################################################################
    #### Перенаправляем протокол https на http                              ####
    ############################################################################
    #RewriteCond %{ENV:HTTPS} on
       # Проверяем наличие https в URL.
    #RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
       # Перенаправляем протокол на http.
    
    ############################################################################
    #### Перенаправляем протокол http на https                              ####
    ############################################################################
    #RewriteCond %{ENV:HTTPS} !on
       # Проверяем наличие https в URL.
    #RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
       # Перенаправляем протокол на http.
    Ответ написан
    Комментировать
  • Откуда взялся скрип на сайте?

    А что вас смущает ?
    1. вы плохо разобрались в коде.
    2. Вы нашли откуда он по действиям самого скрипта.
    3. Вы не слышали про вирусы. https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D...
    Ответ написан
  • Как понизить скорость передачи по sftp?

    shambler81
    @shambler81 Куратор тега Linux
    еще вариант с фтп
    wput --limit-rate=6000K --timestamping --output-file=/var/log/wput.log mysql/ ftp://USER:PASS@HOST/backup/
    Ответ написан
    Комментировать
  • Нужен договор веб-студии с клиентом, где веб-студия перепродает услуги хостинга и регистрации доменов - где?

    А нигде вы его не возьмете
    И причина этого законодательство а оно такое... законодательство.
    В общем У вас лицензия на предоставление телематических услуг есть?
    А порядок ее получения вы читали ?
    Так что продать официально вы там ничего не сможете!
    Мы в свое время делали следующее
    Договор о технической поддержке (абанентский)
    а предоставления хостинга и продление домена в подарок ;)
    В таком случае вы предоставляете трудочасы сотрудника а не телематические услуги.
    Ну и чтоб совсем вам весело было

    https://habrahabr.ru/company/zarlaw/blog/296968/
    Ответ написан
    4 комментария
  • Как правильно сформировать запрос на чтение nginx-access.log?

    Все зависит что вы имеете в виду под словом сейчас ?
    Для этого вам понадобится
    tail -f будет выводить изменения, но опять же от тз.
    uniq -c - удаляет не уникальные строки и групирует их в числа.
    awk '{print $1}' access.log - выведет только айпи, соответственно $2 и так далее соответствующие колонки, так же их можно комбенировать $1$4
    Как вариант понадобится wc -l подсчет количества строк

    Например подсчет уникальныйх айпи во всем лог файле будет так
    awk '{print $1}' shop_access.log | uniq -c | wc -l
    Ответ написан
  • Как сделать редирект htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    Ответ написан
    Комментировать
  • Как добавить Редиректы modRewrite в htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    в 404.php делай все че хочешь, htaccess для этого совсем необязателен.
    А уж в пыхе инклудь хоть заинклудься, да и редиректы там проще сделать, меньше гемороя с гет запросами и тд и тп.
    Ответ написан
  • Как настроить редирект на https для robots.txt?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{HTTP:X-HTTPS} !1
    RewriteCond %{REQUEST_URI} !robots.txt
    RewriteRule ^(.*)$ https://SiteName.ru/$1 [R=301,L]

    Кэп ну при полном уважение, первая же ссылка в гугле

    В твоем случае
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteCond %{REQUEST_URI} !robots.txt
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    Ответ написан
    5 комментариев
  • Как правильно составить условие для rewritecond?

    shambler81
    @shambler81 Куратор тега htaccess
    Вообще правильно наоборот добавлять слеш, однако надо не забывать что есть места исключения когда его нужно убирать.
    В общем кидаю тебе правило уже расписаное
    ! - отрицание остальное там прокоментированно.
    Уж из этого сможешь переработать под себя
    ############################################################################
    #### Убираем повторяющиеся слеши (/) в URL                              ####
    ############################################################################
    RewriteCond %{THE_REQUEST} //
       # Проверяем, повторяется ли слеш (//) более двух раз.
    RewriteRule .* /$0 [R=301,L]
       # Исключаем все лишние слеши.
    
    ############################################################################
    #### Убираем слеши в конце URL для статических файлов (содержит точку)  ####
    ############################################################################
    RewriteCond %{REQUEST_URI} \..+$
       # Если файл содержит точку.
    RewriteCond %{REQUEST_FILENAME} !-d
       # И это не директория.
    RewriteCond %{REQUEST_FILENAME} -f
       # Является файлом.
    RewriteCond %{REQUEST_URI} ^(.+)/$
       # И в конце URL есть слеш.
    RewriteRule ^(.+)/$ /$1 [R=301,L]
       # Исключить слеш.
    
    ############################################################################
    #### Добавляем слеш(/), если его нет, и это не файл.                    ####
    ############################################################################
    RewriteCond %{REQUEST_URI} !(.*)/$
       # Если слеша в конце нет.
    RewriteCond %{REQUEST_FILENAME} !-f
       # Не является файлом.
    RewriteCond %{REQUEST_URI} !\..+$
       # В URL нет точки (файл).
    RewriteRule ^(.*)$ $1/ [L,R=301]
       # Добавляем слеш в конце.
    
    ############################################################################
    #### Убираем index.php, если он есть в конце URL                        ####
    ############################################################################
    RewriteCond %{REQUEST_METHOD} =GET
       # Выявляем GET запрос в URL (не POST).
    RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
       # URL cодержит index.php в конце.
    RewriteRule ^(.*)$ %1/ [R=301,L]
       # Удалить index.php из URL.
    Ответ написан
    7 комментариев
  • Два файла htaccess как настроить редирект?

    shambler81
    @shambler81 Куратор тега htaccess
    В любом из них, мало того в люлой папке
    .htaccess ммогут лежать в любой папке и каждый из них будет частным случаем от предидущего
    Так что если вам нужно указать на весь сайт то в корне сайта, если настройки только для одной директории то можно создать этот файл там и задать нужные настройки в нем.

    Теперь по настройке https
    если вы хотели настроить https - то это не к .htaccess а к vitrualhost и где и какие они у вас зависит от хостинга.
    Если же вы хотели сделать редиректы http > https то не вопрос это легко сделать.
    Да и эти редиректы до ЧПУ вашего сайта!
    Правила нестандартные поскольку вначале делается редирект с основного зеркала, притом сохраняя протокол, а потом только меняется протокол, однако такой вариант может учесть любой требуемый вам вариант редиректа, просто раскоментировав нужный кусок.
    Стандартные правила можете лекго найти в интернете.

    ############################################################################
    #### Выбор основного зеркала (с www или без www)                        ####
    ############################################################################
        # 1. Удалить www
    #RewriteCond %{ENV:HTTPS} on
        #Если включен https
    #RewriteRule .* - [E=SSL:s]
        #То создаем переменную  ssl с текстом s
    #RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
        # Проверяем, содержит ли домен www в начале URL.
    #RewriteRule ^(.*)$ http%{ENV:SSL}://%1/$1 [R=301,L]
        # Перенаправляем удаляем www
    
        # 2. Добавить www
    RewriteCond %{ENV:HTTPS} on
        #Если включен https
    RewriteRule .* - [E=SSL:s]
        #То создаем переменную  ssl с текстом s
    RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
        # Если нет www в начале домена
    RewriteRule ^(.*)$ http%{ENV:SSL}://www.%{HTTP_HOST}/$1 [R=301,L]
        #Подставляем www и https если он включен.
    
    ############################################################################
    #### Перенаправляем протокол https на http                              ####
    ############################################################################
    #RewriteCond %{ENV:HTTPS} on
       # Проверяем наличие https в URL.
    #RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
       # Перенаправляем протокол на http.
    
    ############################################################################
    #### Перенаправляем протокол http на https                              ####
    ############################################################################
    RewriteCond %{ENV:HTTPS} !on
       # Проверяем наличие https в URL.
    RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
       # Перенаправляем протокол на http.
    Ответ написан
    3 комментария