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

    shambler81
    @shambler81 Куратор тега htaccess
    /bitrix/admin/site_checker.php?lang=ru
    че говорит ?
    Ответ написан
  • Объясните магию: как работает это правило RewriteRule?

    shambler81
    @shambler81 Куратор тега htaccess
    все просто это правило удаляет два слеша подряд, если их 2
    Если еж их больше то хтаксесс крутится по кругу пока не остановится и все урлы после прохождения останутя неизменными ( это не к правила а вообще к .htaccess относится). Так что тут все лочно работает, магии нет.
    И если вы понимаете что .htaccess гоняется кругами то магия исчезает.
    Ответ написан
    1 комментарий
  • Как исправить mod_rewrite?

    shambler81
    @shambler81 Куратор тега htaccess
    %1 - это часть урла ? или это переменная из rewritecond ?

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

    shambler81
    @shambler81 Куратор тега htaccess
    как договорились сегодня уже второй такой
    /? в конце урла "куда"- удалит гет запрос.
    Ответ написан
    Комментировать
  • Как сделать редирект 301 на другой адрес для нескольких страниц?

    shambler81
    @shambler81 Куратор тега htaccess
    давйа список урлов которые нужны
    Выдели какая часть из них тебе реально нужна как идеттификатор.
    Ответ написан
  • Как сделать правильный редирект в htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    это редирект с гет запросом.
    Гет не явлется частью урла.
    https://donatstudios.com/RewriteRule_Generator
    Плюс вам нужно будет добавить в конец строки"?"
    чтоб гет удалился.
    Ответ написан
  • Настройка .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    Жадные и ленивые квантификаторы наше все
    Тебе нужно указать
    Несколько кондов с ограничениями
    и 1 рул.

    ############################################################################
    #### Cтандартный .htaccess для проектов студии Клондайк, версия 2.4 ####
    ############################################################################
    RewriteEngine On
    # Директива включает редиректы.
    RewriteBase /
    # Без директивы (.*) = /$1 будет /var/wwww/site/web/$1 с директивой = /$1
    Options +FollowSymLinks
    # Разрешает переход по символическим ссылкам.

    Так же полезными могут оказаться эти снипеты.

    ############################################################################
    #### Перенаправляем протокол https на http                              ####
    ############################################################################
    RewriteCond %{HTTPS} on
       # Проверяем наличие https в URL.
    RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI}
       # Перенаправляем протокол на http.
    
    ############################################################################
    #### Выбор основного зеркала (или с www или без www)                    ####
    ############################################################################
       # 1. Редирект с www на без www. (раскоментировать директивы пункта 1)
    #RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
       # Проверяем, содержит ли домен www (в начале URL).
    #RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
       # Перенаправляем URL на домен без www.
    ####
       # 2. Редирект без www на www. (раскоментировать директивы пункта 2)
    #RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
       # Проверяем, не содержит ли домен www (в начале URL).
    #RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
       # Перенаправляем URL на домен c www.
    
    ############################################################################
    #### Убираем повторяющиеся слеши (/) в 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 нет точки (файл).
    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>
      # Compress HTML, CSS, JavaScript, Text, XML and fonts
      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>
    ############################################################################
    #### Конец общей части, далее следует собственные директивы .htaccess   ####
    ############################################################################
    Ответ написан
    Комментировать
  • Как правильно писать регулярные выражения в .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    у вас редирект с гет запросом, он не является частью урла.
    его делают по другому.
    Ответ написан
  • Как сделать Redirect 301, если в URL есть?

    shambler81
    @shambler81 Куратор тега htaccess
    # 301 --- www.mysite.ru/any-category/?page=1 => www.mysite.ru/any-category/
    RewriteCond %{QUERY_STRING} (^|&)page=1($|&)
    RewriteRule ^www\.mysite\.ru/any-category/$ /www.mysite.ru/any-category/? [L,R=301]


    А в вашем случае проще сходить сюда
    https://donatstudios.com/RewriteRule_Generator
    Ответ написан
    Комментировать
  • Не корректно отображается sitemap.xml, что делать?

    shambler81
    @shambler81 Куратор тега htaccess
    это не с файлом проблема это конфигурация хостинга, было у меня такое дело.
    НО в упор не помню что переписывал.
    Помоему что-то с ассоциацией файлов.
    Ответ написан
    Комментировать
  • Как составить регулярку для URL подкатегории?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{REQUEST_URI} ^categoria/(.*)$ 
    # если строка  начинается с categoria
    RewriteCond %{REQUEST_URI} !^categoria/podcategoria/(.*)$ 
    # защита от цикла ! - отрицание 
    RewriteRule ^(categoria/)(.*)$ /$1/podcategoria/$2 [R=301,L] 
    # добавит  у всего что есть категория подкатегорию


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

    # 301 --- http://shop.wildorchid.ru/Catalog/StyleCard.aspx?&sale=1&shop=7&categoryid=2046&style=26778 => http://shop.wildorchid.ru/catalog/nizhnee_bele/1010-defile/
    RewriteCond %{QUERY_STRING} (^|&)sale=1($|&)
    RewriteCond %{QUERY_STRING} (^|&)shop=7($|&)
    RewriteCond %{QUERY_STRING} (^|&)categoryid=2046($|&)
    RewriteCond %{QUERY_STRING} (^|&)style=26778($|&)
    RewriteRule ^Catalog/StyleCard\.aspx$ /catalog/nizhnee_bele/1010-defile/? [L,R=301]
    Ответ написан
    Комментировать
  • Как заменить запятую в htaccess?

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

    shambler81
    @shambler81 Куратор тега htaccess
    запихни в генератор ЧПУ сайта исключение для этой страницы
    RewriteCond %{QUERY_STRING} !^products/okna/
    Тогда чпу будет ее обходить стороной
    Ответ написан
  • Как убрать ask в конце URL?

    shambler81
    @shambler81 Куратор тега htaccess
    301 редирект вам в помощь
    Ответ написан
    Комментировать
  • Как закрыть админку сайта?

    shambler81
    @shambler81 Куратор тега htaccess
    Запрет доступа только к файлу private.zip

    <Files /admin/index.php> 
    AuthType Basic 
    AuthName "Private zone. Only for administrator!" 
    AuthUserFile  /usr/host/mysite/.htpasswd 
    require valid-user 
    </Files>
    Ответ написан
    Комментировать
  • Как сделать в .htaccess редирект при отсутствии GET параметра?

    shambler81
    @shambler81 Куратор тега htaccess
    реврайт конд ! гет тест

    помоему очевидно.
    Ответ написан
  • Как настроить исключения в .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    Тут все просто
    1. ДОбавить исключение ты уже умеешь это ! в RewriteCond
    так что добавь еще один конд
    конд
    конд
    конд
    конд
    что делать

    Теперь про отрезать
    как я понял ты регулярки немного знаешь так что понимаешь что такое $1$2 и и тд - если нет эт овсе что в скобках, какие скобки по очереди тот и бакс.
    Но это сработает на руле, а условия тебе нужны в конде
    ТАк вот Баксы с конда выгледят вот так %1 %2
    В таком случае.
    RewriteCond %{REQUEST_URI}  (скобка первая) ляляля ( скобка вторая)
    RewriteRule .* %1%2

    Соответственно получешь редирект на то что в скобках минуя ляляля. Но и это еще не все
    У тебя ошибка в редиректе НА гет он тупо не сработает
    экранируй все ? в - куда
    иначе они просто не появятся.

    Если не достаточно то вот пара примеров
    klondike-studio.ru/blog/snipet-for-htaccess
    Ответ написан
    Комментировать
  • Как изменить вид ссылки через .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    У тебя ошибка, гет запрос не является частью урла
    Тебе нужна двухуровневая конструкция с реврайт конд.
    Короче вот
    https://donatstudios.com/RewriteRule_Generator
    Не забывай пометить ответ решеным ;)
    Ответ написан
    Комментировать