Задать вопрос
Ответы пользователя по тегу htaccess
  • Как сделать правило для .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{QUERY_STRING} (^|&)user=\(.+)($|&)
    RewriteCond %{QUERY_STRING} (^|&)pass=\(.+)\$($|&)
    RewriteRule ^launcher/auth\.php$ /index.php\?mode=launcher&user=%1&pass=%2/? [L,R=301]
    Ответ написан
    Комментировать
  • Почему редактируется файл htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    это у вас батенька пробелы \\x20
    сохраненный через "плохой" редактор ;)
    Естественно оно дает 500
    Ответ написан
  • Как закрыть прямой доступ к файлам в папке через .htaccess, но разрешить если есть ?key=secret?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{QUERY_STRING} !(^|&)key\=secret($|&)
    RewriteRule ^orders/1\..+$ http://test.ru/404.php [L,R=301]


    Если нет GET параметра key=secret
    То отправить куда-нибудь , например 404.php
    Ответ написан
    Комментировать
  • Ка поставить 301 редирект Постранично на новый сайт?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{ENV:HTTPS} on
       # Проверяем наличие https в URL.
    RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
       # Перенаправляем протокол на http.
    Ответ написан
  • Как убрать index.php?id= из урла?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{REQUEST_METHOD} =GET
    RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
    RewriteRule ^(.*)$ %1/? [R=301,L]
    Ответ написан
    Комментировать
  • Правильный редирект на https | Конфиг или htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    Убираем

    RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]


    добавляем
    RewriteCond %{HTTP_HOST} !^www\.(.*) [NC] 
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
    Ответ написан
    Комментировать
  • Почему идет редирект на главную?

    shambler81
    @shambler81 Куратор тега htaccess
    1. у тебя кешь редиректов в браузере Как очистить кеш url редиректов?
    2. тебе не нужно делать редирект, тебе нужно изменить DocumentRoot
    Ответ написан
    Комментировать
  • Как изменить формат Url для пагинации с помощью .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    а где вэ том урле логика
    например если было бы
    /vse?start=24 на vse/page/24 то все понятно, Но в вашем случае я не вижу как сделать правило.
    Если же у вас есть перечень урлов то это уже другое дело.
    Ответ написан
    Комментировать
  • Почему ошибка при редиректе?

    shambler81
    @shambler81 Куратор тега htaccess
    тут у меня есть примеры и того и другого.
    https://klondike-studio.ru/standards/standartnyy-h...
    Ответ написан
    Комментировать
  • Как убрать расширение .php?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{REQUEST_METHOD} =GET 
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteCond %{REQUEST_URI} ^(.+)\.php$ 
    RewriteRule ^(.*)$ %1/ [R=301,L]
    Ответ написан
  • Почему не работает редирект с последней точкой домена?

    shambler81
    @shambler81 Куратор тега htaccess
    куда это вы собрались ее убирать ?
    Да и не индексируется он
    Ответ написан
  • Как избавится от лишних символов в url после работы RewriteRule?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{QUERY_STRING} (^|&)art_id\=10($|&)
    RewriteRule ^article$ /article\?id=10 [L,R=301]


    Но наверное ID это некие цифры динамически меняющиеся в зависимости от урла так что сделаем регулярку на все цирфры сразу

    RewriteCond %{QUERY_STRING} (^|&)art_id\=([0-9]{1,})($|&)
    RewriteRule ^article$ /article\?id=%2 [L,R=301]


    Где ([0-9]{1,}) - цифри хотябы одна и более собираем их в группу и подставляем ее в рул через %2 поскольку это вторая група.
    Ответ написан
  • Перехватить запрос к https://site.ru/sitemap.xml и направить на https://site.ru/seo_cap_sys/sitemap-general.php. Реально ли это?

    shambler81
    @shambler81 Куратор тега htaccess
    есть третий вариант, не заниматся хуетой
    а почитать в интернете как рекомендуют сами поисковые системы.

    1. Добавить директиву sitemap с его адресом в файл robots.txt
    2. https://webmaster.yandex.ru/site/indexing/sitemap/
    3. https://www.google.com/webmasters/tools/sitemap-li...
    sitemap-google.png
    Ответ написан
    Комментировать
  • Как запретить просмотр директории?

    shambler81
    @shambler81 Куратор тега htaccess
    Просматривать через что ?
    через браузер вилно файлы ? - то это одна ошибка
    Можно открыть тело файла php - это другая ошибка
    Можно вообще зайти в эту папку - это другая ошибка

    Половина ответов можно найти просто забив их в поиске
    https://habr.com/post/165701/
    Ответ написан
    Комментировать
  • Как реализовать раздельные редиректы в htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteEngine On
    RewriteBase /
    
    # Редирект если не начинается с www
    RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
    RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]
    
    # Редирект если не робот и начинается с www
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteCond %{HTTP_USER_AGENT} !(googlebot|yandexbot|msnbot) [NC]
    RewriteRule ^(.*)$ http://www.site2.com/$1 [L,R=302]
    
    # Запуск сайта на текущем домене
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]


    поменяй местами просо и все, в таком случае бот будет частным случаем редиректа на ввв, и во второй проход урлы не будут меняться а следовательно и применяться правила.
    Ответ написан
  • Почему со страниц ЧПУ каталога редиректит на /bitrix/urlrewrite?

    shambler81
    @shambler81 Куратор тега 1С-Битрикс
    1. домен с русским именем это не проблемам
    https://r01.ru/domain/whois/instruments/converter.php
    2. Пропиши домен пд.рф алиасом к новому домену.
    3. я тут немного подшаманил твой конфиг
    <IfModule mod_rewrite.c>
      Options +FollowSymLinks
      RewriteEngine On
      Options +FollowSymLinks
      php_flag display_errors off
      # запретить отображение ошибок  (требование монитора качества)
      php_flag allow_url_fopen off
      # запретить  использовать удаленые файлы (требование проактивной защиты)
    
    </IfModule>
    ############################################################################
    #### Выбор основного зеркала (с www или без 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    если протокол https то подставляется буква s
    
    ############################################################################
    #### редирект с  алиаса к сайту                                         ####
    ############################################################################
    RewriteCond %{HTTP_HOST} !^www(.|)pd\.info$ [NC]
    RewriteRule ^(.*)$ https://pd.info/$1 [R=301,L]
    
    
    ############################################################################
    #### Перенаправляем протокол http на https                              ####
    ############################################################################
    RewriteCond %{HTTP:X-HTTPS} !1
       # Проверяем наличие https в URL.
    # RewriteCond %{ENV:HTTPS} !on  
       # закоментировал свое условие, вставил твое, от сервера зависит какое лучше использовать. 
    RewriteCond %{REQUEST_FILENAME} !^/\.well-known(.*)$
      #   если нет well-known, не знаю зачем тебе это но вставил
    RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
       # Перенаправляем протокол на http.
    
    ############################################################################
    #### Убираем слеши в конце 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.
    ############################################################################
    #### Компрессия статического контента для гугл  спид тест               ####
    ############################################################################
    <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 3 day"
      ExpiresByType image/svg "access plus 3 day"
      ExpiresByType image/gif "access plus 3 day"
      ExpiresByType image/png "access plus 3 day"
      ExpiresByType text/javascript "access plus 3 day"
      ExpiresByType text/css "access plus 3 day"
      ExpiresByType application/javascript "access plus 3 day"
    </IfModule>
    
    ############################################################################
    #### Антивирус, только для 1С-Битрикс,                                  ####
    ############################################################################
       #php_value auto_prepend_file "/home/bitrix/ext_www/SITE.RU/bitrix/modules/security/tools/start.php"
       #  укажите путь до файла 
       # включить тут /bitrix/admin/security_antivirus.php?lang=ru
    
    <IfModule mod_rewrite.c>
      # Безопасность
      RewriteRule ^composer\.(json|lock)$ / [R=404,L]
      RewriteRule ^vendor(.*)$ / [R=404,L]
      RewriteRule ^(.*)\.(idea|git|gitmodules|gitignore|htaccess|vagrant)$ / [R=404,L]
      RewriteRule ^deploy-config\.json$ / [R=404,L]
      # Bitrix
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-l
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
      RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
      RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
    </IfModule>

    Теперь почему не отрабатыает твой редирект.
    Поскольку он идет до ЧПУ
    ПО сути тебе нужно повторить его и после ЧПУ
    или внести исключение в ЧПУ битрикса
    Ответ написан
  • Как убрать PHP поставить слеш в отдельной папке?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} ^/forum/.+\.php$ 
    RewriteRule ^(.+)\.php /$1 [L]
    Ответ написан
    Комментировать
  • Как убрать наследование htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    Что-то вы парите какую-то дичь, вопервых наследоваться они не могут поскольку у каждого сайта свой документ рут, даже если они в подпапках.
    Во второых вложенный .htaccess перекрывает правила вышестоящего.
    Ну и да ответ будет такой, нужно перепилить vitrualhost сделать все как положено.
    Если нужно чтоб сайты лежали внутри друг друга, сделать симлинки и настроить на них.
    Ответ написан
  • Как изменить урл карты сайта?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{QUERY_STRING} (^|&)route\=extension/feed/google_sitemap($|&)
    RewriteRule ^index\.php$ /map.xml? [L,R=301]
    Ответ написан
    6 комментариев
  • Условия в .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    Брат мой, познай силу UTM - меток
    Ответ написан
    Комментировать