Задать вопрос
  • Как влияет количество редиректов в htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    первая рекомендация, запиши правельней гет.
    RewriteCond %{QUERY_STRING} (^|&)первый_гет($|&)
    RewriteCond %{QUERY_STRING} (^|&)еще_гет($|&)
    RewriteCond %{QUERY_STRING} (^|&)и так_далее($|&)

    Если урлов много то тут
    https://donatstudios.com/RewriteRule_Generator
    Вторая слеш и без слеша это не проблемма не редиректа, а любого сайта впринципе. Так чтоэто отдельне правило на весь сайт.

    ############################################################################
    #### Cтандартный .htaccess для проектов студии Клондайк, версия 2.3     ####
    ############################################################################
    RewriteEngine On
       #  Директива включает редиректы.
    RewriteBase /
       # Без директивы (.*) = /$1 будет /var/wwww/site/web/$1  с директивой  = /$1
    Options +FollowSymLinks
       # Разрешает переход по символическим ссылкам.
    
    ############################################################################
    #### Перенаправляем протокол https на http                              ####
    ############################################################################
    #RewriteCond %{HTTPS} On
       # Проверяем наличие https в URL.
    #RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
       # Перенаправляем протокол на https.
    ############################################################################
    #### Выбор основного зеркала (или с www или без www)                    ####
    ############################################################################
       # 1. Редирект с www на без www. (раскоментировать директивы пункта 1)
    RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
       # Проверяем, содержит ли домен www (в начале URL).
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
       # Перенаправляем URL на домен без www.
    ####
       # 2. Редирект без www на www. (раскоментировать директивы пункта 2)
    #RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
       # Проверяем, не содержит ли домен www (в начале URL).
    #RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
       # Перенаправляем URL на домен c www.
    
    ############################################################################
    #### Убираем повторяющиеся слеши (/) в URL                              ####
    ############################################################################
    RewriteCond %{THE_REQUEST} //
    RewriteRule .* /$0 [R=301,L]
    ############################################################################
    #### Убираем слеши в конце URL для статических файлов (содержит точку)  ####
    ############################################################################
    RewriteCond %{REQUEST_URI} !(.*)/$
       # Если слеша в конце нет.
    RewriteCond %{REQUEST_FILENAME} !-f
       # Не является файлом.
    RewriteCond %{REQUEST_URI} !\..+$
       # В URL нет точки (файл).
    RewriteRule ^(.*)$ $1/ [L,R=301]
       # Добавляем слеш в конце.
    ############################################################################
    #### Добавляем слеш(/), если его нет, и это не файл.                    ####
    ############################################################################
    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.
    
    ############################################################################
    #### Компрессия статического контента для гугл  спид тест               ####
    ############################################################################

    Нужное подчеркнуть, ненужное удалить.
    Ставить ДО ЧПУ.

    Теперь вопрос третий, сильно ли влияет.
    я пытался в свое время замерить падение производительности но до 6к редиректов притом с2-6 квери ( отдельные конды на каждого) нифига не заметил. ТАк что да оно есть. Но выявить реальное падение не удалось.
    Ответ написан
  • Как будет обработана SPF с redirect и -all?

    v=spf1 ip4:ip a mx include:_server -all
    Ответ написан
    Комментировать
  • Сложный редирект 301?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{REQUEST_URI} /i([0-9]{1,}) [NC]
    #  если начинается с i и дальше цифры больше 1
    RewriteCond %1 >99
    RewriteCond %1 <120
    RewriteRule ^(.*)$  https://radio-services\.ru/i%1 [R=301,L]
    #%1  это 1 скобка из конда не путать с $   это из рула.
    Ответ написан
    Комментировать
  • Как сделать исключение в htaccess для https?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{HTTP_HOST} ^(www\.|)mysite\.com [NC] - так точней будет.
    - тут все правильно как вариант убери лишний пробел перед ! и сделай более мягкое условие, сработает ?
    Так же не забывай что html - по идее статика, и может забираться сразу nginx и не доходить до редиректа в апаче в принципе. Тут нужно более подробно о конфе сервера.
    А так же весь .htaccess
    и зачем тебеRewriteCond %{HTTP:X-Forwarded-Proto} ^http$
    Ответ написан
    Комментировать
  • Отсутствует фал default в файлах nginx, как исправить?

    ЭЭ даже не знаю. Написать наверное ?
    у дефолта то по сути только две директивы отличаются от обычных.
    listen 80 default_server;
                    server_name _;

    Скопируй сайт поменяй на нем эту хрень. вот и все, ну и документ рут сам понимаешь.
    По server_name _; будут валиться все неразобраные
    Ответ написан
    Комментировать
  • Yii2 ошибка 404 при удалении /web из url на локальном хосте при помощи .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    У вас 1 урл или вам нужно регулярное выражение для убирания из урла всех web ?
    RewriteRule хост/web/site/index$ /хост/site/index. [L,NC]

    Если вам нужно сделать это для всего сайта
    ТО тут вариантов уже больше, самй простой именно простой это сделать "мягкую линку" и все, тогда сайт физически будет лежать там и там. Но скорее всего это не подойдет.
    если тебе нужна регулярка то
    RewriteCond %{REQUEST_URI} ^/dir1/(.*)$ 
    # если строка начинается с /dir1/ 
    RewriteRule ^(.*)$ /dir1%1 [R=301,L] 
    #Перенаправить все урлы с начинающиеся с dir1 на dir2 с сохранением дальнейшей структуры URL

    более детально примеры давал тут.
    https://klondike-studio.ru/blog/snipet-for-htaccess/ - тут более подробно писал и другие примеры.
    Ответ написан
    Комментировать
  • Как сделать резевный айпи для домена?

    В зависимости от данных , и что вы делаете на них.
    НАпример можно задать две Азаписи .
    Тогда домен будет в принципе выдавать то один айпи то другой.
    Или если это веб сервер то Дать А запись nginx прокси которая уже бэкэнды будет менять в зависимости от работоспособности nginx.org/en/docs/http/load_balancing.html
    какой сервис у вас там болтается, более детально опишите
    Ответ написан
  • Как дать группе права на папку?

    shambler81
    @shambler81 Куратор тега Linux
    chown - R user1:group1 /var/www/ - так можно поменят группу и поьзователя.
    Теперьпо правам.
    Стандратные права это тольк остандартные на самом деле их куда бошьше

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

    https://vps-server.ru/
    гыгы ;) всеравно берут у германцев.
    ТАк что там и руский сапорт и буржуйский.
    Ответ написан
    Комментировать
  • Как настроить почту в Битрикс?

    shambler81
    @shambler81 Куратор тега 1С-Битрикс
    1. вариант и я тебе его крайне рекомендую.
    Делигируй почту на яндекс PDD, ( по сути штатный вараиант для битиркс вм)
    Битрикс вм по умолчанию использует не smtpd а msmtpd который по сути умеет только автаризовывать на чужом почтовом сервере.
    редактируем файлик
    /home/bitrix/.msmtprc( рестартовать демон не нужно)
    пишем туда вот это

    # smtp account configuration for default
    account default
    logfile /home/bitrix/msmtp_default.log
    host smtp.yandex.ru
    port 587
    from norepay@shop.wildorchid.ru
    keepbcc on
    auth on
    user norepay@shop.wildorchid.ru
    password ТУТ_ТВОЙ_ПАРОЛЬ
    tls on
    tls_certcheck off
    tls_starttls on

    Смотрим логи отправки в этой же папке
    Да и не забудь активировать акаунт на яндексе!
    Плюсы
    +у каждого проекта свой почтовый сервер без настроек
    + админка яндекса
    +антиспам яндекса
    +spf dkim dmarck работают валидно сертификаты подписаны. ( требуется отправить токен для активации DKIM
    - почта уходит со внешнего сервера

    Настройки можешь посмотреть у этого домена в записях.

    Теперь как сделать так чтоб почта отправлялась с лькального компа.
    yum install postfix ...

    Ну и чтоб сайт начал отправлят ьпочту через постфикс, коментишь строчку в виртуал хосте соответствующего сайта
    php_admin_value sendmail_path "msmtp -t -i -a Тут_имя_твтего_сайта"
    релоад апача и все.

    +почта своя
    - нет антиспама
    -ставить веб морду, если нужна то roundcube рекомендую.
    - настраивать все ящики и тд нужно самому или опять крутить веб морду.
    - нужно настраивтаь самому dkim , ставить opendkim Писал как это сделатьл тут

    https://klondike-studio.ru/blog/nastroyka-dkim-na-...
    Ответ написан
    2 комментария
  • Htaccess redirect после удаления мультиязычки?

    shambler81
    @shambler81 Куратор тега htaccess
    https://klondike-studio.ru/blog/snipet-for-htaccess/
    смотрите тут есть пример
    Ответ написан
    Комментировать
  • Когда использовать RewriteCond?

    shambler81
    @shambler81 Куратор тега htaccess
    Конд это "ЕСЛИ" длля более точных регулярных выражений.

    Например
    Если это не файл
    И если это не такая ссылка
    и если это гет парметр такой-то
    ТО
    Рул

    ТАк же можно передавать часть условий с конда в рул
    Напрмер $1 из рула это %1

    Где без него никак
    Напрмер сделать редирект с гет параметрами, гет не является частью урла.
    А в условие его можно прописать.
    Ответ написан
    Комментировать
  • Как настроить rewriterule в htaccess для главной страницы и категорий?

    shambler81
    @shambler81 Куратор тега htaccess
    Мде а кто тебе сказал что GET пармметр является частью урла ?
    Тут тебе будет пример как сделать редирект с гет пармметрами.
    https://donatstudios.com/RewriteRule_Generator
    А тут я писал как убрать категорию.
    https://klondike-studio.ru/blog/snipet-for-htaccess/
    Ответ написан
    Комментировать
  • Как узнать что инициирует отправку письма postfix?

    shambler81
    @shambler81 Куратор тега Linux
    я пиал это подробно тут
    https://klondike-studio.ru/blog/kak-opredelit-kako...
    не забудь отметить как решеное.
    Ответ написан
    4 комментария
  • Как научить делать сайт адаптивным на bootstrap и что для этого нужно?

    bootstrap адаптивен по умолчанию col-md-10 - 10 колонок для разрешения мд, вообще странный вопрос.
    col-lg-11 колонок для лардж. добавляй убавляй классы и получай себе адаптив.
    Ответ написан
    Комментировать
  • Настройка редиректа .htaccess с заглавных букв?

    shambler81
    @shambler81 Куратор тега htaccess
    ?catalog_hurl=DJ-oborudovanie - это GET он не является частью урла ващет.
    Следовательно вам нужно написать "как сделать редирект с GET пармметром", а следоватлеьно вы это сможите теперь найти и в гугле.
    Вам вместо реквест ури нужно задать квери стринг.
    # 301 --- http://www.mydefile.ru/company/?section=torgovlya&PAGEN_1=9 => http://www.mydefile.ru/about/
    RewriteCond %{QUERY_STRING} (^|&)section=torgovlya($|&)
    RewriteCond %{QUERY_STRING} (^|&)PAGEN_1=9($|&)
    RewriteRule ^company/$ /about/? [L,R=301]
    Ответ написан
    Комментировать
  • Как сделать редирект в .htaccess на другой сайт если страница не найдена?

    shambler81
    @shambler81 Куратор тега htaccess
    Ответ написан
    Комментировать
  • Какой Linux для удаленного терминала?

    shambler81
    @shambler81 Куратор тега Linux
    нафиг хром ?
    загружайся по PXE
    запускай РДП сразу
    без посредственной ОС и даже жесткого диска.
    nixts.org/doku.php?id=screenshots
    Ответ написан
    Комментировать
  • Как сократить сразу два URL через .HTACCCESS?

    shambler81
    @shambler81 Куратор тега htaccess
    в конде создайте услови или, или
    собственно и все
    RewriteCond %{REQUEST_URI}  ^([A-z0-9-]+)$/(posts|pages)/([A-z0-9-]+)/$1  [NC]
    RewriteRule   .*  http://site.ru/%1%3

    Где %1 это номер скобки в конде, аналог $1 прям из рула.
    Ответ написан
  • Bootstrap. Cпор с программистом, как убедить?

    отвечу вам как тимлид, ваш тимлид прав на все 100%
    Тут нужно понимать специфику каждого сотрудника.
    Манагеру - главное продать, как это будут реализовывать ему не особо интересно.
    Дизику главное чтоб от него отЪебались и ему срать как ты будешь это потом верстать под сетку.
    Он понимает что там есть верстак но ему до фени это В результате и что главное вдумайся страдает качетсво проекта в целом, поскольку уже на стадии верстки начинают закладываться косяки вызваные нежеланием дизика учить верстку.

    Теперь ты повторяешь тоже самое ухудшая работу и с твоей стороны это так же имеет обоснования, ты глубоко закастомил бутстрап, а в идиале бы от него отказался поскольку тру верстак всегда так хочет.
    В результате ты хочешь получить валидную верстку бэм и все дела.
    Прогер в свою очередь твое художество должен итнетрировать и это не всегда будет не криво, поскольку идет последовательность компанентнв фильтров и тд, в идиале и ты и дизик должны были знать движок и как на нем работает то или другое, и рисовать например количество элементов в секции после смарт фильтра ( если битрикс) или ты должен пуш пулом поднять ее. Но опять же не ты ни он этого не делает. Прогер в свою очередь это переверстыает или как и реализуют 99% сделает это на отложенной функции, ибо ему интенесно собственно вывести циферки а дальше становиится скучно.
    Ну и да у сайта есть еще и пользователи, те кто им пользуются , это контент менеджеры там сотни часов их работы а могут быть и тысячи, и сотимость этих работ определяет стоимость всего сайта, о чем ни ты ни дизик не прогер не думают. В следствие этого задача Тим лида сделать сайт максимально дешево становится несбыточной.
    Поскольку контенты не знают верстку. И если их обучить бутстрапу еще реально, то полноценно "качественно" верстать увы нет.
    По этому приходится на все мелкие правки дергать куда как более дорогого верстака. включая элементарные посадки и тд.
    Так что с точки зрения человека видящего не частть своей работы а весь проект.
    Ваш тим лид вполне себе адекватен.

    Так же не забывайте про
    документирование ( то чем вы не занимаетесь) следовательньость легкость входа нового сотрудника в проект.
    Сайт постоянно (говнится) после релиза, и это никуда не деть, задаче тима так же замедлить этот процесс, и оттянуть рефакторинг проекта как можно дальше. А Тут стандартизация в угуоду качеству куда как круче чем вы думаете. Ну и в конце концов производительность сотрудников. Набитая рука дает больше кпд. Когда все проекты уникльны на это уходит больше времяни и больше компетенции. как следствие больше денег.
    Ответ написан
    3 комментария