• Что не так с этим htacess?

    shambler81
    @shambler81 Куратор тега htaccess
    ############################################################################
    #### Стандартный .htaccess для проектов студии Клондайк, версия 4.6     ####
    ############################################################################
    RewriteEngine On
       #  Директива включает редиректы.
    RewriteBase / 
       # Без директивы (.*) = /$1 будет /var/wwww/site/web/$1  с директивой  = /$1
    Options +FollowSymLinks
       # Разрешает переход по символическим ссылкам.
    ############################################################################
    #### Выбор основного зеркала (с 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
    
    ############################################################################
    #### Перенаправляем протокол http на https                              ####
    ############################################################################
    RewriteCond %{HTTPS} off
       # Проверяем наличие https в URL.
    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>
    ############################################################################
    #### Тут ваша отсебятена                                                ####
    ############################################################################
    
    Redirect 301 /site/index /
    # редирект с папки сайт индекс на слеш
    php_value error_reporting 1
    #  по умолчанию на продакшенах не долно быть репортов они должны быть отключены, ловите репорты на дев версие
    
    
    RewriteCond %{HTTP_USER_AGENT} ^.*(Chrome/76.0.3809.100).*$ [NC]
    #  если юзерагент Chrome/76.0.3809.100).* никакой другой, идиотская идея
    RewriteRule .* - [F,L]
    # соответственно идиотский редирект
    
    
    
    RewriteCond %{REQUEST_URI} !^/generate-webp.php$ 
    #  Если это не файл 
    RewriteCond %{REQUEST_URI} !^/sitemap.php$ 
    #  И если это не файл 
    RewriteCond %{REQUEST_URI} !^/php.php$ 
    #  И если это не файл 
    RewriteCond %{REQUEST_URI} !^/allJS\.php?v2$ 
    #  И если это не файл 
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
    #  И если это не файл большие английские буквы 3 и более раз, далее пробел плюс любые символы но не точка к пример ADAD DDA.php но не ADld nd.php    так же не сработает seting.dbcon.php ( поскольку есть точка и он в низком регистре, не забывай у тебя есть в верху правило которое  еще и верхний регистр удаляло, так что правило физически не может работать)
    RewriteRule ^ %1 [R,L,NC]
    #  то  редиректим на то что после пробела  но до пхп
    
    
    
    ############################################################################
    #### Это ЧПУ движка оно должно быть в самом низу   ####
    ############################################################################
    RewriteCond %{REQUEST_FILENAME} !-f
    #  если это не файл
    RewriteCond %{REQUEST_FILENAME} !-d
    # если это не директория
    RewriteRule . index.php
    # То перенаправить на индекс пхп
  • Shell в php с выводом?

    Вам нужно исправить ваш new.sh
    в нем вам нужно на ввод брать "аргументы" консоли, дабы баш это легко позволяет и подставлять их в нужные места. в таком случае не получится бэкдор.
  • Что не так с этим htacess?

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

    Редирект с верхнего регистра в нижний (сейчас работает)

    это я прекрасно понимаю но не хочу обкладывать ...ями того ...та который придумал вообще его делать.
    Если в кратце то ЛИНУКС РЕГИСТРОЗАВИСИМАЯ ОС
    а это значит.
    1 файл
    Final-version.docx
    final-version.docx
    c с точки зрения линукс совершено разные файлы и ваш веб сервер его физичеки не найдет
    в результате как минимум весь файловый контент в котором была регистрозависимость мжет отдать 404 при этом у вас нет механизма оценки этих потерь. ( а в винде этого механизма не на уровне файловой системы)
    к примеру logo.jpg и logo.Jpg
    я понимаю что гениальный сеошник сидящий на винде придумал сделать такое правило правда он не сильно разбирается в линуксе от слова совсем и не понимает что ТУТ ТАК делать НЕЛЬЗЯ!
    а не то что оно не будет работать.

    после ответа на этот вопрос я вам напишу окончательный файл ;)
  • Как настроить nginx тобы порт 80 работал и на http и на https?

    эээ делаешь все как положено
    htttp -> http
    https -> https
    и все

    а вот эти костыли https > http какой-то идиот придумал встречается в 100% манах
    идиотская вещь придумана идиотом в добавок сверху еще и костыль исправляющий этот костыль который тоже работает по идиотски.
    сделай все как и положено
    4 порта занимает веб сервер
    два у nginx
    два у apache
    сертификат подставляется и там и там.
    и никаких https://example:80/
    даже если это говно заработает в таком формате
    1. у вас будет неверный рефери поскольку он будет уже замечу с портом
    ну и главное ваши куки аяксы и тд не смогут защищены они или нет поскольку одна сторона будет говорить что да а вторая что конечно нет. яне говорю уже о редиректах которые такой юмор не понимают.
    В общем делай как положено
    к примеру так
    80 > 81
    443 > 4443
  • Как полноценно работать с Linux без интернета?

    shambler81
    @shambler81 Куратор тега Linux
    Сергей Паньков, гыгы ну россия собралась тянуть туда оптику ;) так что ждем оптику на полюсах там всего то около 300 миллиардов бюджет на это дело ;)

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

    не думаю однако что он за полярным кругом
    или в параллельной вселенной где 90тые года
    думаю все намного проще они делают "защищеный контур"
    и скорее апофиоз этого будет еще и блокирование USB портов на компьютерах в общем занимаются совершенно бесполезными действиями.
  • Как полноценно работать с Linux без интернета?

    shambler81
    @shambler81 Куратор тега Linux
    Сергей Паньков, нет не можте быть там куча оборудования подключенного к интернету 24\7
    Там летаюет Ямал и 140 борт и это только геостационарные.
    Короче интернет там тоже есть хоть и дорогой.
    конечно можно поднять локальную репку но на этом все.
    синхронизировать вес репозиторий будет дороже чем юзать даже VSAT интернет
    гыгы тогда уже проще Solaris юзать ;)
  • Как полноценно работать с Linux без интернета?

    shambler81
    @shambler81 Куратор тега Linux
    линукс без интернета ?
    вы шутите?
    Настройте ваш фаервол только для доступа к репозиториям.
    Поверьре мне ваша система безопасности полное г.
    если к ней подойти более серьезным взглядом.
    Так что будет вполне себе нормально дать доступ интернета на внутренний контур в огрниченном количестве.
    тем более это одно правило в фаерволе.
  • REQUEST_URI в Apache чему равен?

    cursor_pointer, это просто переменная не больше не меньше.
  • Как сделать редирект если в конце цифры?

    shambler81
    @shambler81 Куратор тега htaccess
    пиши более подробное тз
  • Как удалить папку SSH?

    самая каноническая команда в линукс даже на вики у нее есть статья
  • Как настроить проксирование сайта в nginx?

    Александр, это прямой ответ и даже я вам написал почему, но вы не поняли.
  • Как настроить проксирование сайта в nginx?

    Александр, просто какой то идиот сделал неправильный ман, все остальные повторили
  • Какой командой можно заменить grep -A?

    shambler81
    @shambler81 Куратор тега Linux
    ну вообще можно и так сделать
    grep-A ..... | grep - -color ....
    ну не оптимально но если прям подсветить захотелоь ;)
    другие варианты тебе уже предложили
  • Где в админке хранятся комментарии? И как можно вывести список всех комментариев?

    В зависимости от того как он сделан, тут реально множество вариантов. Вплоть до последней моды интеграция с коментами на яндекс маркете.
  • Подмена картинки на Apache?

    если у вас есть nginx то лучше это сделать там поскольку за статические файлы как правило отвечает он и ваши правила в апаче могут не привести ни к чему
    if ($http_user_agent ~ (agent1|agent2|Foo|Wget|Catall Spider|AcoiRobot) ) {
     ....
    }

    Если у вас чистый апач
    RewriteCond "%{HTTP_USER_AGENT}"  "^ru.*"
    RewriteRule "^lang\.jpeg$"         "ru.jpeg"          [L]
    
    RewriteCond "%{HTTP_USER_AGENT}"  "^com.*"
    RewriteRule "^lang\.jpeg$"         "com.jpeg"          [L]
  • Как в .htaccess сделать подмену файла robots.txt на robots.php?

    shambler81
    @shambler81 Куратор тега htaccess
    rabamaster, это у вас из-за nignx посколку он отдает статику и не допускает этот запрос до apache
  • Как проксипасить https на http?

    bro-dev, ну и будет оно работать так-же
  • Подмена картинки на Apache?

    Karpov82, вы правы проще реально показать
    как вы определяете "язык пользователя" что является критерием /?