• Как сделать универсальный htaccess чтобы убрать html из пути?

    shambler81
    @shambler81 Куратор тега htaccess
    Только поменяй php файл на html
    не нужные блоки удали
    ############################################################################
    #### Стандартный .htaccess для проектов студии Клондайк, версия 4.6     ####
    ############################################################################
    RewriteEngine On
       #  Директива включает редиректы.
    RewriteBase / 
       # Без директивы (.*) = /$1 будет /var/wwww/site/web/$1  с директивой  = /$1
    Options +FollowSymLinks
       # Разрешает переход по символическим ссылкам.
    php_flag display_errors off
      # запретить отображение ошибок  (требование монитора качества)
    php_flag allow_url_fopen off
      # запретить  использовать удаленные файлы (требование проактивной защиты)
    
    ############################################################################
    #### Выбор основного зеркала (с 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 %{HTTPS} on
       # Проверяем наличие https в URL.
    #RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
       # Перенаправляем протокол на http.
    
    ############################################################################
    #### Перенаправляем протокол http на https                              ####
    ############################################################################
    RewriteCond %{HTTPS} off
       # Проверяем наличие https в URL.
    RewriteCond %{REQUEST_URI} !^/bitrix/admin/1c_exchange\.php$ [NC] 
       #  Исключим обмен с 1С, ему требуется только 200 
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
       # Перенаправляем протокол на http.
    
    ############################################################################
    #### Убираем index.php, если он есть в конце URL                        ####
    ############################################################################
    RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
       # URL cодержит index.php в конце.
    RewriteCond %{REQUEST_METHOD} =GET
       # Выявляем GET запрос в URL (не POST).
    RewriteRule ^(.*)$ %1/ [R=301,L]
       # Удалить index.php из URL.
    
    ############################################################################
    #### Убираем повторяющиеся слеши (/) в URL                              ####
    ############################################################################
    RewriteCond %{THE_REQUEST} //
       # Проверяем, повторяется ли слеш (//) более двух раз.
    RewriteCond %{QUERY_STRING} !http(s|)://
      # Убедимся что это не урл в  GET
    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 нет точки (файл).
    RewriteCond %{REQUEST_URI} ^(.+)$
     # В URL есть хоть один символы
    RewriteRule ^(.*)$ $1/ [L,R=301]
       # Добавляем слеш в конце.
    
    
    ############################################################################
    #### Компрессия статического контента для гугл  спид тест               ####
    ############################################################################
    <IfModule mod_deflate.c>
      AddType image/svg+xml .svg
      AddOutputFilterByType DEFLATE image/svg+xml  
      AddOutputFilterByType DEFLATE application/rss+xml
      AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
      AddOutputFilterByType DEFLATE application/x-font
      AddOutputFilterByType DEFLATE application/x-font-opentype
      AddOutputFilterByType DEFLATE application/x-font-otf
      AddOutputFilterByType DEFLATE application/x-font-truetype
      AddOutputFilterByType DEFLATE application/x-font-ttf
      AddOutputFilterByType DEFLATE application/x-javascript
      AddOutputFilterByType DEFLATE application/xhtml+xml
      AddOutputFilterByType DEFLATE application/xml
      AddOutputFilterByType DEFLATE font/opentype
      AddOutputFilterByType DEFLATE font/otf
      AddOutputFilterByType DEFLATE font/ttf
      AddOutputFilterByType DEFLATE image/svg+xml
      AddOutputFilterByType DEFLATE image/x-icon
      AddOutputFilterByType DEFLATE text/css
      AddOutputFilterByType DEFLATE text/html
      AddOutputFilterByType DEFLATE text/javascript
      AddOutputFilterByType DEFLATE text/plain
      AddOutputFilterByType DEFLATE text/xml
      AddOutputFilterByType DEFLATE image/svg+xml
    </IfModule>
    <IfModule mod_expires.c>
      ExpiresActive on
      ExpiresByType image/jpeg "access plus 1 year"
      ExpiresByType image/svg "access plus 1 year"
      ExpiresByType image/gif "access plus 1 year"
      ExpiresByType image/png "access plus 1 year"
      ExpiresByType text/javascript "access plus 1 year"
      ExpiresByType text/css "access plus 1 year"
      ExpiresByType application/javascript "access plus 1 year"
      ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
      ExpiresByType application/x-font-ttf "access plus 1 year"
      ExpiresByType application/x-font-opentype "access plus 1 year"
      ExpiresByType application/x-font-woff "access plus 1 year"
      ExpiresByType image/svg+xml "access plus 1 year"
    </IfModule>
      <IfModule mod_headers.c>
      <filesmatch "\.(ico|flv|jpg|jpeg|webp|png|gif|css|swf|woff|pdf)$">
        Header set Cache-Control "max-age=31536000, public"
      </filesmatch>
      <filesmatch "\.(html|htm)$">
        Header set Cache-Control "max-age=7200, private, must-revalidate"
      </filesmatch>
      <filesmatch "\.(pdf)$">
        Header set Cache-Control "max-age=86400, public"
      </filesmatch>
      <filesmatch "\.(js|otf|ttf|woff|woff2)$">
        Header set Cache-Control "max-age=31536000, private"
      </filesmatch>
      </IfModule>
    ############################################################################
    #### Конец общей части, далее следует собственные директивы .htaccess   ####
    ############################################################################
    Ответ написан
    Комментировать
  • Как перенаправить разные домены на site.com/sitename?

    RewriteCond %{HTTP_HOST} ^(www\.|)(.+)\.site\.com [NC]
    RewriteRule ^(.*)$ https://sitebuilder.com/%2/$1 [R=301,L]
    Ответ написан
    3 комментария
  • Выбираем панель управления сервером. Что ждать от панели ispconfig? Какие есть очевидные (для вас) недостатки?

    1. nginx+apache прийдется подшаманить поскольку в штатной комплектации оно не идет подробней писал тут . ( временами недоступен сервер ремонтируется )
    В общем и целом отличная панель просто приходится немного дотачивать напильником.
    2. мне нравится очень удобно но тут дело вкуса
    3. могу предложить варианты
    aapanel
    vestacp
    braynicp
    но сам испом ползуюсь
    Ответ написан
    Комментировать
  • Как nginx page_error сделать мультиязычным?

    shambler81
    @shambler81 Куратор тега Linux
    Вы изначально пошли не тем путем.
    Коды ответа не должен отдавать nignx
    а их должна отдавать сама cms
    в них все это есть, вплоть до шаблона 404
    Однако если ошибка 50X дествительно бэк может не отвечать в принципе и тут бло бы не кисло сразу давать красивую страничку.
    Вам никто не мешает отправить это на пхпшный файл который уже в свою очередь будет подключать геолокатор которй в свою очередь будет подставлять шаблон.
    дешево сердито и работает.
    Если же nginx+fpm уже не сработают то и 500 вам отдавать будет некому.
    error_page 500 502 503 = @fallback;
    
            location @fallback {
    тут правило че отдать, но сам саму логику уже в пхп или че там у вас
                    }
    Ответ написан
  • Как сделать редирект таких страниц?

    shambler81
    @shambler81 Куратор тега htaccess
    Держи друг
    RewriteCond %{QUERY_STRING} (?:^|&)page_id\=430(?:$|&)
    RewriteRule ^$ /proekty/olimpiada\-uchiteley\-matematiki/? [L,R=301]


    А вот тебе чтоб душа твоя радовалась
    https://donatstudios.com/RewriteRule_Generator
    Ответ написан
    Комментировать
  • Linux, поведение файловой системы подмонтированной с опцией errors=continue?

    shambler81
    @shambler81 Куратор тега Linux
    рейд контроллер не нужне для видеонаблюдения от слова совсем.
    Тем более если у вас проблема с апаратным решением.
    К записи видео больше требований по отказоустойчивости нежеле по системе кеширования скорости доступов к данным и тд.
    И не забыайте что апаратный рейд это тот же софтверный только в железке с отдельным камнем, поскольку процесс сам по себе требует совтверного решения.
    так что это отдельный софтверный комплекс не более
    не путайте его с дискретной видеокартой это немного другое.
    Так что софт вполне себе нормальное решение тем более под вашу задачу.
    Если ваша задача НЕ освоить бюджет.
    Общее же i-o системы в таком решение вообще не важно поскольку оно должно заниматься только видео.
    Ответ написан
    Комментировать
  • Как заменить урлы всех страниц в определенной категории на алиасы из базы данных?

    shambler81
    @shambler81 Куратор тега htaccess
    вам нужен ЧПУ
    вариантов миллион
    https://rio-shaman.ru/razrabotka-cms/uluchshenija/...?
    Ответ написан
    Комментировать
  • В какую дружественную страну переехать из России чтобы продолжить работать на Upwork?

    Сербия
    к русским очень хорше
    30% населения
    легкий въезд
    можно понять местный язык ( латиница)
    Ответ написан
    Комментировать
  • Как автоматизировать перемещение файлов с условиями?

    как-то так ?
    Создаем папочку для бэкапа
    mkdir /tmp/backup

    find /home/bitrix/ext_www/shop.ru/  -mtime  -30 -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)" -print0 | xargs -0 cp --parents --target-directory /tmp/backup


    find - рекурсивный поиск
    /home/bitrix/ext_www/shop.ru/- откуда искать
    -mtime -30 - те что созданы за последние 30 дней значения могу принимать и плюсовые значении.
    -regexpне обязательно просто показал если нужны только определенные фацлы
    -print 0 тебе не особо нужно, но если у тебя там не просто файлы а структура каталогов со вложениями то через принт мы передаем в xargs короче нормально создадутся все каталоги
    xargx - долго ольяснять
    |- передать в
    cp --parents --target-directoryкопирует создавая дирекорию
    /tmp/backupдиректория собственно.

    Проверь с виду должно заработать
    В результате ты должен получить идентичную структуру каталога необходимую для тех файлов что были за это время изменены.
    Все остальные каталоги и содержимое их не копируется.
    такой бэкап можно просто заливать поверх реальных файлов.

    УДАЛЕНИЕ
    find /tmp/backup -mtime +90 | xargs rm -f;
    #удаляет предыдущие бэкапы старше 90 дней
    Ответ написан
    Комментировать
  • Перевозим VPS/VDS из Европы обратно в РФ. Куда переехать?

    https://selectel.ru/
    вот сюда, или маил ру
    Ответ написан
    Комментировать
  • Не передается GET параметр с настройками htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    [L,QSA]
    QSA - сохраняет гет параметры.
    НЕ забывайте что с точки зрения mod_rewrite GET вообще не является частью урла и выделяется вообще через
    QUERY_STRING
    Опять же то что вы делаете похоже на кривую поделку ЧПУ
    Ответ написан
    Комментировать
  • Как найти все строки во всех файлах с такими параметрами?

    shambler81
    @shambler81 Куратор тега Linux
    1. текстовый файл или html ?
    2. пример файла в студию.
    Ответ написан
  • Порекомендуйте подходящую базу данных?

    Вам не нужна бд в принципе.
    При собеседование почему-то у программистов в 100% случаев возникает тупик в вопросе для чего нужна mysql
    и когда спрашиваешь почему именно его используют до вопроса с транзакциями не доходит практически никогда.
    А ведь именно из-за них ее используют.
    Так вот тут у вас транзакции не нужны. Тупо 1 инсерт
    Как следствие вам хватит и обычного лог файла который можно удобно парсить, дабы для этого вообще не требуется никакого ПО. да и того в достатке.
    Ротация логов и тд и тп, в общем это до вас придумали.
    Так же для ваших целей и яндекса и гугла есть соответствующие инструменты ( особенно у гугла с отчётами и подобной хренью, не понимаю зачем вам вообще держать эти данные локально)
    Ответ написан
    6 комментариев
  • Почему работает htaccess на nginx?

    shambler81
    @shambler81 Куратор тега htaccess
    у вас nginx+apache
    посмотрите что у вас в proxy_pass стоит ?
    Ответ написан
    Комментировать
  • Почему в админке карточки товара не выводятся свойства товара?

    Просто кто-то вставил скрыть, и применил по умолчанию
    620a96ca1cc89909196769.png
    Ответ написан
    Комментировать
  • Где можно найти пароль от компьютера на LINUX UBUNTU?

    shambler81
    @shambler81 Куратор тега Linux
    1. положи ключи и юзай их вообще забудь про пароль.
    2. установи новый пароль.
    3. создай нового юзера с группой 0:0
    Ответ написан
    Комментировать
  • Как убрать ошибку при установке PHP?

    на винду можно поставить уже готовое решение что-то вроде openserver или Денвер, вот смысл писать самодельные костыли на инвалидную ос ( рамках вбе разработки)
    Ответ написан
    Комментировать
  • Как в HTTPD изменить DOCUMENT_ROOT?

    shambler81
    @shambler81 Куратор тега Linux
    HTTPD по умолчанию поддерживает html разметку
    PHP интерпритируется или модулем к нему или отдельным демоном, в общем вам нужно выбрать интерпритатор пхп и подклчить его
    вот виды представления пхп по популярности
    mod_apache
    PHP-FPM
    FastCGI
    Веб сервер по умолчанию берт только html другие языки требуют доп установок.

    Поставьте админку
    aapanel
    aapanel73.png
    или
    vestacp
    BtiwHmQCQAAqh65.png:large
    они ставятся в 1 клик
    Ответ написан