Ответы пользователя по тегу htaccess
  • Как объединить несколько команд в htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP
    RewriteRule ^([^\.]+)\.p?html?$ https://site.ru/wot-shop.icu/$1 [R=301,L]

    Но лучше так не делать. поскольку редиректов может быть больше
    например с ввв
    и это уже три, на вскидку добавим добавление слеша и удаление его если это файл, а это уже пятьт
    а пять условий в одном будет не читаемо
    Ответ написан
  • Как грамотно сделать редирект без catalog?

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

    shambler81
    @shambler81 Куратор тега htaccess
    скинь эксель файл было стало
    ну и да 1000 это не так много можно и прописать ;)
    Ответ написан
    Комментировать
  • Как сделать, чтобы поддомен должен обращаться к основному домену, но при этом в адресной строке должно быть название поддомена?

    shambler81
    @shambler81 Куратор тега htaccess
    алиас, вам пнавильно написали вверху
    Ответ написан
    Комментировать
  • Как настроить 301 редирект с # в url?

    shambler81
    @shambler81 Куратор тега htaccess
    Комментировать
  • Почему .htaccess переадресовывает не все страницы на https?

    shambler81
    @shambler81 Куратор тега htaccess
    https://klondike-studio.ru/standards/standartnyy-h...
    тут можешь посмотреть.

    Что же касается robots.txt - это файл текстов и скорее всего его обрабатывает nginx отдельно от apache
    Как следствие .htaccess просто к нему не относится
    Ответ написан
    Комментировать
  • Как правильно прописать ссылку в htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    GET не является частью урла
    RewriteCond %{QUERY_STRING} тут гет параметр
    Ответ написан
  • Как сделать редирект с главной страницы на внутреннюю?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{REQUEST_URI} ^/(index\.php)?$ [NC]
    RewriteCond %{REQUEST_URI} !^/aristotel [NC]
    RewriteRule . /aristotel/ [L]
    Ответ написан
    Комментировать
  • Редирект HTACCESS с сохранением/копированием параметров на opencart 1.5?

    shambler81
    @shambler81 Куратор тега htaccess
    %{QUERY_STRING} - не является частью урла и выделяется отдельным способом

    RewriteCond %{QUERY_STRING} (^|&)utm=(.+)($|&)
    RewriteRule ^page\.php$ /new-link.ru\?utm=%2 [L,R=301]


    %2 - это вторая групаа из RewriteCond вторая групаа из RewriteRule $2
    (.+)- 1 и более символов
    Ответ написан
    6 комментариев
  • Почему в одних и тех же браузерах на мобильной платформе и на компе по разному срабатывают директивы .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    попробуй так
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteCond %{REQUEST_FILENAME} !/index.php$
    RewriteRule  .+ index.php [L]
    Ответ написан
    2 комментария
  • Как исправить .htaccess, чтобы удалить news из url?

    shambler81
    @shambler81 Куратор тега htaccess
    покажи ссылки какие есть и какие должны быть
    Ответ написан
    9 комментариев
  • Как настроить правильный редирект c www?

    shambler81
    @shambler81 Куратор тега htaccess
    это неправельно настроеный nginx к сожалению это достаточно чатое явление.
    Пропишите явно домен куда делать редирект, и все.
    Ответ написан
    Комментировать
  • Правильный 301 редирект ссылок wordpress после смены ЧПУ?

    shambler81
    @shambler81 Куратор тега htaccess
    собери ссылки в эксель файл было стало
    и сюда давай
    Ответ написан
    Комментировать
  • Как настроить редирект для имен файлов имеющие заглавные буквы в имени файла на прописные?

    shambler81
    @shambler81 Куратор тега htaccess
    Это идиотский редирект, и его придумал те кто никогда в линукс не работали. В линуксе регистрозависимая файловая систем, и это действительно разные файлы.
    По этому менять регистр просто так не имеет ни смысла ни желания, на сео не влияет никак регистр твоей картинки.
    Остается виртуальная структура сайта (ЧПУ), но она как ты понимаешь строит валидные урлы, уж как минимум не занимается пляской в регистре.
    Так что смысла от этих редиректов нет вообще.
    Разубеди меня этим показаниями метрики.
    Ответ написан
    Комментировать
  • Как сделать редирект в opencart файл .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    и правильно сделали
    GET не является частью урла, по этому его невозможно выделить ;)

    # 301 --- http://site.ru/ndex.php?route=product/category&path=146$ => http://site.ru/dlya-reklami/komplekruyuschie-i-konnektori
    RewriteCond %{QUERY_STRING} (^|&)route\=product/category($|&)
    RewriteCond %{QUERY_STRING} (^|&)path\=146\$($|&)
    RewriteRule ^ndex\.php$ /dlya-reklami/komplekruyuschie-i-konnektori? [L,R=301]

    Вопрос в конце урла удалит GET
    Если урлов много
    https://donatstudios.com/RewriteRule_Generator
    Ответ написан
    Комментировать
  • Как сделать редиректы по UTM-метке в .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    GET - не является частью урла и в реврайт рул он не попадает вовсе
    https://www.generateit.net/mod-rewrite/index.php
    Ответ написан
  • Правильно ли составлен редирект?

    shambler81
    @shambler81 Куратор тега htaccess
    Последние обмены битрикс работает с https.

    ############################################################################
    #### Стандартный .htaccess для проектов студии Клондайк, версия 4.2     ####
    ############################################################################
    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} !on
       # Проверяем наличие https в URL.
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
       # Перенаправляем протокол на http.
    
    ############################################################################
    #### Убираем index.php, если он есть в конце URL                        ####
    ############################################################################
    RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
       # URL cодержит index.php в конце.
    RewriteRule ^(.*)$ %1/ [R=301,L]
       # Удалить index.php из URL.
    
    ############################################################################
    #### Убираем повторяющиеся слеши (/) в URL                              ####
    ############################################################################
    RewriteCond %{THE_REQUEST} //
       # Проверяем, повторяется ли слеш (//) более двух раз.
    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 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"
       #  если у вас FastCGI, директив не сработает, и нужно ее записать в vhost
       #  укажите путь до файла 
       # включить тут /bitrix/admin/security_antivirus.php?lang=ru
    
    ############################################################################
    #### Конец общей части, далее следует собственные директивы .htaccess   ####
    ############################################################################
    # Рефакторинг сайта 01.01.18
    
    
    
    ############################################################################
    #### Конец собственных директив                             .htaccess   ####
    ############################################################################
    Ответ написан
    Комментировать
  • Правильно ли настроен 301 редирект на сайте?

    shambler81
    @shambler81 Куратор тега htaccess
    ############################################################################
    #### Выбор основного зеркала (с 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
    ############################################################################
    #### Перенаправляем протокол https на http                              ####
    ############################################################################
    RewriteCond %{HTTPS} on
       # Проверяем наличие https в URL.
    RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
       # Перенаправляем протокол на http.

    Однако учти пару НО
    1. браузеры не любят переходить на http уже побывав на https, хотя код ответа сервера будет правильный браузер все-равно будет упорно показывать https и работать с ним
    По этому проверяй ответ сервера а не сам браузер, браузер сам на уме
    2. https может не сделать редирект еще по двум причинам.
    На сервере нет https к этому сайту, а специфика работы c https подразумивает ВНАЧАЛЕ получить ключи, а только потом посмотреть http referer.
    А следоватлеьно нет ключей - нет referer -> нет сайта -> нет .haccess -> нет редиректа ;)
    ну и самый козырный вариант
    есть один сайт с http а другой http+https в таком варианте есть вероятность отдачи первым сайтом на https контента соседнего сайта . К сожалению такое достаточно часто бывает,и тут опять же проблема получения рефери после полкченя ключей и никак иначе, вплотьдо того что сайт вообще не имеет https, но узнает он о этом только после того как подключается по нему.
    ну и на подлесок, в 2018 году делать редирект на http это даже не смешнь ;(
    Все уже давно перешли на https
    Ответ написан
    Комментировать
  • Почему не работает 301 редирект ModX?

    shambler81
    @shambler81 Куратор тега htaccess
    покажите весь .htaccess
    Ответ написан
    Комментировать