Ответы пользователя по тегу htaccess
  • Что это такое в этом htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    обычный мобильный вирус, редирект сработает только на мобилке
    удаляем файл ищем вирус
    можно для начала пройтись ai-bolit.php
    Ответ написан
    Комментировать
  • Как настроить htaccess 301 редирект?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{REQUEST_URI} ^/catalog/osnova/(.+)$ 
       # если строка начинается с /dir1/ 
    RewriteRule ^(.*)$ /catalog/osnova? [R=301,L] 
       #Перенаправить все URL с начинающиеся с dir1 на dir2 с сохранением дальнейшей структуры URL
    Ответ написан
  • Циклическая переадресация wordpress ERR_TOO_MANY_REDIRECTS, почему?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteRule ^index\.php$ - [L]
    убери вот это
    Ответ написан
    Комментировать
  • Как настроить переадрессацию?

    shambler81
    @shambler81 Куратор тега htaccess
    у вас гет параметр в урле, но гет не является частью урла по этому вы его не моежте просто выделить.
    Собственно ваш ответ:
    RewriteCond %{QUERY_STRING} (^|&)download\=497($|&)
    RewriteCond %{QUERY_STRING} (^|&)k\=1584014899($|&)
    RewriteRule ^files\-and\-media/$ /files/1.pdf? [L,R=301]
    А вот где это можно легко сделать:

    https://donatstudios.com/RewriteRule_Generator
    Ответ написан
    Комментировать
  • Как заменить редирект с каталога на главную на универсальный?

    shambler81
    @shambler81 Куратор тега htaccess
    ############################################################################
    #### Стандартный .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
      # запретить  использовать удаленные файлы (требование проактивной защиты)
    
    ErrorDocument 404 /404.php
    
    php_value register_globals Off
    
    php_value mbstring.func_overload 2
    
    RemoveHandler .html .htm
    
    AddType application/x-httpd-php .php .htm .html
    
    DirectoryIndex index.php index.html index.htm
    
    php_value default_charset cp1251
    
    AddType 'text/html; charset=cp1251' .html .htm .shtml
    
    php_value mbstring.internal_encoding cp1251
    
    # ТЫ УВЕРЕН ЧТО cp1251 !!!!!???
    
    ############################################################################
    #### Выбор основного зеркала (с 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   ####
    ############################################################################
    
    
    RewriteCond %{QUERY_STRING} wd_export=Y&pdf=Y
    RewriteRule ^(.*)\.php$ /$1.php? [R=301,L]
    
    RewriteCond %{QUERY_STRING} wd_export=Y&pdf=Y&pdf2email=
    RewriteRule ^(.*)\.php$ /$1.php? [R=301,L]
    
    RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
    RewriteRule . %1/%2 [R=301,L]
    
    Redirect 301 /kraska-emal/ www.voronezh.optimaservis.su/kraska-emal-dlja-naru...
    #!!!!!!!!!!!!!!!!!!!!!!!!!!!!  ПРЯМ В УРЛЕ ТРИ ТОЧКИ В КОНЦЕ ? ????????
    
    Redirect 301 /sistema-skat/ www.voronezh.optimaservis.su/sistemy-svetovoi-indekacii
    Redirect 301 /katalog/$ /?
    
    RewriteCond %{REQUEST_URI} !^www.voronezh.optimaservis\.su/bitrix/admin/
    RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
    RewriteRule ^(.*)index\.php$ http://%{HTTP_HOST}/$1 [R=301,L]
    #
    BrowserMatch "MSIE" force-no-vary
    BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
    
    RewriteCond %{HTTP_HOST} kurgan.optimaservis.ru
    RewriteRule (.*) kurgan.optimaservis.su/$1 [R=301,L]
    
    SetEnvIf Referer ^https?://(?:.+\.)?advodka\.com/.*$ ban
    Deny from env=ban
    
    SetEnvIf Referer ^https?://(?:.+\.)?linkis\.com/.*$ ban
    Deny from env=ban
    
    SetEnvIf Referer ^https?://(?:.+\.)?prlog\.ru/.*$ ban
    Deny from env=ban
    
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
    RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]


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

    зачем тебе?
    RemoveHandler .html .htm

    и это
    AddType application/x-httpd-php .php .htm .html
    Вы вначале прикрутили к битриксу html файлы теперь удаляете их названия в чем проифт ?

    DirectoryIndex index.php index.html index.htm
    Встречается 2 раза с разной последовательностью в чем прикол ?

    php_value default_charset cp1251
    AddType 'text/html; charset=cp1251' .html .htm .shtml

    ЭЭЭ у тебя 14 битрикс? давно уже по умолчанию UTF-8 точно у тебя сп?
    php_value mbstring.internal_encoding cp1251
    устарела, какой у тебя битриикс?

    Redirect 301 /kraska-emal/ www.voronezh.optimaservis.su/kraska-emal-dlja-naru...

    Реально урл такой?
    Ответ написан
  • Как сделать массовый редирект страниц вложености?

    shambler81
    @shambler81 Куратор тега htaccess
    Перенаправляет все содержимое каталогов
    http://site.ru/любое/dir1/любое/любое

    RewriteCond %{REQUEST_URI} ^/dir1/(.*)$ 
       # если строка начинается с /dir1/ 
    RewriteRule ^(.*)$ /dir1%1 [R=301,L] 
       #Перенаправить все URL с начинающиеся с dir1 на dir2 с сохранением дальнейшей структуры URL
    Перенаправляет все содержимое каталогов с любым началом и концом
    http://site.ru/любое/dir2/dir1
    /любое/любое
    RewriteCond %{REQUEST_URI} ^(.*)/dir1/(.*)$ 
       # если строка содержит /dir1/ 
    RewriteRule ^(.*)$ %1/dir2/%2 [R=301,L] 
       #Перенаправить все URL с начинающиеся с dir1 на dir2 с сохранением дальнейшей структуры URL
    Ответ написан
    Комментировать
  • Как сделать редирект с папки на файл?

    shambler81
    @shambler81 Куратор тега htaccess
    Правильно ли я понимаю что вам нужно выполнить uslugi.php когда урл /page
    Если да то в этой папке в .htaccess впишите
    DirectoryIndex uslugi.php index.php
    или если очередность не нужна то просто
    DirectoryIndex uslugi.php
    Ответ написан
  • Как сделать чтобы была красивая ссылка в php?

    shambler81
    @shambler81 Куратор тега htaccess
    ЭТО называется ЧПУ
    blog.ox2.ru/php/hpu
    Ответ написан
    Комментировать
  • Преобразовать htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteEngine On
    # включаем mod_rewrite
    
    #Частный случай,  редирект стоит выше чем на индекс ( читается сверху вниз)
    RewriteRule  /files/([0-9\.]+\/.+)$ /files/../download.php\?file=$1
    
    #Условие если  это не файл index.php
    RewriteCond %{REQUEST_FILENAME} !/files/../index.php$
    #  и если это не файл  download.php
    RewriteCond %{REQUEST_FILENAME} !/files/../download.php$
    #То все мело кидаем на индекс
    RewriteRule ^/files/($ /inde.php [L]

    как-то так, Но нужно проверить.
    Ответ написан
  • Товарищи как прописать GET запрос в URL Htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    это называется ЧПУ
    Вот один из примеров
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    # если это не файл
    RewriteCond %{REQUEST_FILENAME} !-l
    # и если это не линка
    RewriteCond %{REQUEST_FILENAME} !-d
    # и это не директория
    RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$

    # защита от цикла , если это уже не файл обраюатывающий урл
    RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
    #То перенаправить на тот файл который будет обрабатывать ссылку в данном случае это не индекс
    Ответ написан
    Комментировать
  • Как получить GET параметры htacces?

    shambler81
    @shambler81 Куратор тега htaccess
    раз пять прочитал перед тем как понять что вы хотите, и то по ответу коллеги понял.
    Вот вам еще вариант если первый не подойдет, на некоторых веб серверах нужно коментировать спец символ "?"
    ну и немного другая запись
    RewriteRule ^mod/([0-9]1,)(/?)$ index.php\?do=mod&id=$1 [L]
    Ответ написан
    4 комментария
  • Прописать Header в .htaccess только для основного домена, исключая поддомен?

    shambler81
    @shambler81 Куратор тега htaccess
    htaccess
    <IfModule headers_module>
    Header set X-Frame-Options: SAMEORIGIN
    </IfModule>

    а так же не забывайте что можно вписать его в конфиг самого сайта а не в httpd.conf тогда она буде распространяться только на нужный вам сайт.
    Ответ написан
  • Ошибка htaccess перенаправлений слишком много при добавлении редиректа https?

    shambler81
    @shambler81 Куратор тега htaccess
    https://bertal.ru/index.php?a566754
    что конкретно в цикле
    Ответ написан
    Комментировать
  • Не работает .htaccess на хостинге от reg.ru, как исправить?

    shambler81
    @shambler81 Куратор тега htaccess
    1. У вас может быть nginx+PHP-FPM и .htaccess вообще не будет работать переносите правила в nginx.
    2. У вас не включен mod_rewrite зайдите в панель и включите, если в панели нет то можно попробовать так
    a2enmod rewrite
    service apache2 restart

    3. Еще вариант у вас не включена поддержка самого .htacces в апачь, это можно скорее всего сделать или через панель или с консоли , опять же в зависимости от ОС тарифа и тд
    4. У файла прав не позволяющие апачь его прочитать, права или владелец.

    Что проветрить че делать.
    1. вы вводите намеренно ошибку в файле сайт должен перестать работать. Если нет то его действительно не читают.
    2. сапорт, поскольку по умолчанию мод реврайт у всех включен а .htaccess по умолчанию обрабатывается.
    Ответ написан
    Комментировать
  • Как убрать "25" или полностью "%25" из url сайта?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{THE_REQUEST} //
    RewriteRule .* /$0 [R=301,L]

    Так будет лучше
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*$ index.php\?qa-rewrite=$0\&%{QUERY_STRING} [L]

    тут не забывайте экранировать спец символы в руле, поскольку на некторых веб серверах это требуется, на некторых работает и так.
    Так же не забывайте что RewriteRule не выделяет GET посколкьу тот не является частью урла
    дайте ссылку было стало дабы понять в чем конкретно вопрос, и где находится изначально этот % в гет или в урле
    Ответ написан
    Комментировать
  • Как объединить 2 .htaccess в один?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteEngine On
    
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteCond %{HTTPS} off
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
    
    RewriteCond %{REQUEST_URI} ! \.html$
    RewriteCond %{REQUEST_URI} ! /$
    RewriteRule ^(.*)$ $1.html
    Ответ написан
    Комментировать
  • Как сделать редирект с нескольких доменов на один?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{HTTP_HOST} ^(www\.|)9918474\.ru$     [NC,OR]
    RewriteCond %{HTTP_HOST} ^(www\.|)site4top\.ru$    [NC,OR]
    RewriteCond %{HTTP_HOST} ^(www\.|)sunnyfruits\.ru$ [NC,OR]
    RewriteCond %{HTTP_HOST} ^(www\.|)u-kit\.ru$       [NC,OR]
    RewriteCond %{HTTP_HOST} ^(www\.|)mediagrup\.ru$   [NC,OR]
    RewriteCond %{HTTP_HOST} ^(www\.|)vmast\.ru$       [NC,OR]
    RewriteCond %{HTTP_HOST} ^(www\.|)desid\.ru$       [NC]
    RewriteRule ^(.*)$ https://klondike-studio.ru/  [R=301,L]

    Не забывай экранировать точку.
    для того чтоб сделать эти редиректы не нужно создавать сайты, достаточно добавить алиасы к основному сайту
    5f27c6f1b9337924887753.png
    и в его htaccess вписать все правила.
    Это позволит вам не создавать кучу сайтов с разными htaccess и да тогда вот такого синтаксиса вам будет достаточно.
    Если же у вас уже есть сайты то все правила должны лежать у каждого сайта в своем .htacess
    Ответ написан
    2 комментария
  • Как запретить переход на сайт всем кто не из поиска?

    shambler81
    @shambler81 Куратор тега htaccess
    Переходов может быть куда более чем просто с поиска
    прямые
    по ссылкам
    по рекламме
    эти вы тоже собираетесь отключить ?
    Ответ написан