Задать вопрос
Ответы пользователя по тегу htaccess
  • Редирект не срабатывает с https на http если стоит в конце /, почему?

    shambler81
    @shambler81 Куратор тега htaccess
    Для начала так:
    RewriteRule ^([^/.]*)/?$ index.php?sport=$1 [QSA,L]
    RewriteRule ^([^/.]*)/?$ index.php\?sport=$1 [QSA,L]


    Ну а остальное посмотри тут, много условий все подписаны
    ############################################################################
    #### Cтандартный .htaccess для проектов студии Клондайк, версия 2.3     ####
    ############################################################################
    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}
    #RewriteCond %{HTTP:X-Forwarded-Protocol} =https 
    #RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
    #RewriteCond %{ENV:HTTPS} on
    #RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
       # Перенаправляем протокол на 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   ####
    ############################################################################
    Ответ написан
    Комментировать
  • Как осуществить подмену URL через .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    Ниче не нужно делать
    "символическая ссылка"
    https://losst.ru/simvolicheskie-i-zhestkie-ssylki-linux
    Ответ написан
  • Как сделать редирект с одной страницы на другую с помощью .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{REQUEST_URI} ^(.*)\.aspx$
    RewriteRule ^.*$ http://mysite.ru/%1.html? [R=301,L]


    Если группа в RewriteRule то каждая скобка это $1$2 и тд
    Если скобки в RewriteCond то%1 %2
    Ответ написан
    2 комментария
  • Настройка htaccess для перенаправления и обратно подмены url?

    shambler81
    @shambler81 Куратор тега htaccess
    ! - отрицание
    RewriteCond  %{QUERY_STRING} (^|&)sitemap\=xml($|&)  
    (так будет корректней )
    RewriteCond  %{REQUEST_URI} !sitemap\.xml$ 
    Если не сайтмап
    RewriteRule правило
    Ответ написан
    Комментировать
  • Как отменить редирект в одной директории?

    shambler81
    @shambler81 Куратор тега htaccess
    или так
    RewriteCond %{REQUEST_URI} ! catalog/catalog3/$
    ! - отрицание
    тогда если у тебя правила собраны через RewriteCond
    то добавь еще вот такое условие и все.
    Ответ написан
    2 комментария
  • Htaccess. Как сделать переадресацию с параметрами?

    shambler81
    @shambler81 Куратор тега htaccess
    Ответ написан
    Комментировать
  • Как сделать редирект с index.php на главную для 2х доменов в одном htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{HTTP_HOST} !^mysite2\.ru [NC]
    #если домен такой
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
    # И выполняется это правило
    RewriteRule ^index\.php$ xn--1-7sb0abmmwk.xn--p1ai [R=301,L]
    #Тогда редирект
    Ответ написан
    Комментировать
  • Как добавить "/" в конце URL в Yii 2 Advanced Application Template?

    shambler81
    @shambler81 Куратор тега htaccess
    ############################################################################
    #### Убираем повторяющиеся слеши (/) в 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]
       # Добавляем слеш в конце.
    Ответ написан
    Комментировать
  • Кириллица в URL - полезно ли для SEO?

    shambler81
    @shambler81 Куратор тега htaccess
    не полезно.
    Кириллица в принципе не полезно.
    Хоть линукс давно нормально работает с UTF-8 но де факто косяки есть
    Так что это будет минус для сайта.
    А вот для самого сео не особо.
    НО зачем гемор на пустом месте.
    Весь кирилиц в транслит.
    Ответ написан
    4 комментария
  • Как сделать перенаправление 301 на адрес со слешем в конце для ocStore?

    shambler81
    @shambler81 Куратор тега htaccess
    ############################################################################
    #### Убираем повторяющиеся слеши (/) в 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]
       # Добавляем слеш в конце.
    Ответ написан
    Комментировать
  • Как настроить htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    все легко
    реврайт конд   реквест ури ^(flowers.)(*)&
    реврайт рул http://syte.ru/%2


    Скобки из конда передать в рул
    они передаются не $1 $2 А %1 %2
    Собственно ты выбираешь условие а в скобках разносиш нужные и ненужные части
    цифра это номер скобки.

    ТАк же не забывай что все что за "?"
    это гет и не является частью строки!!!!
    Все гет запросы редиректятся отдельно
    Ответ написан
    1 комментарий
  • Как изменить htaccess, чтоб RewriteRule не блокировал показ изображений на других хостах?

    shambler81
    @shambler81 Куратор тега htaccess
    отрицание
    RewriteCond %{HTTP_HOST} !^www\.(.фейсбукю\.ру) [NC]
    RewriteCond %{HTTP_HOST} !^www\.(.фейсбукю2\.ру) [NC]
    RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ - [F,NC]
    Ответ написан
  • Двойная замена url в htacces?

    shambler81
    @shambler81 Куратор тега htaccess
    причем тут htaccess
    вопервых ?cart=2 - это не ссылка и не является частью урла в принципе
    ( с точки зрения mod_rewrite)
    Во вторых тебе нужен не .htaccess а AJAX
    Ответ написан
  • Как вырезать часть URL с помощью htaccess?

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


    По сути тебе нужно создать правило

    первое в реврайт конд выбрать скобками ту часть что требуется оставить
    Соответственно подставление этой переменной в рул будет не $1 А %1
    Собственно все
    Цифра ровна количеству скобок первая вторая третья и тд.
    Ответ написан
    Комментировать
  • Как поменять url адресс?

    shambler81
    @shambler81 Куратор тега htaccess
    Комментировать
  • Как добавить исключение к правилу перенаправления в htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    Помоему это очевидно, используй отрицание !
    RewriteCond %{HTTP_HOST} ^oldsite\.ru
    RewriteCond %{REQUEST_URI} ^!camera/$
    RewriteRule ^(.*)$ http://newsite.ru/$1 [R=301,L]
    Ответ написан
  • Как создать исключение для папки в .htacsess?

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

    shambler81
    @shambler81 Куратор тега htaccess
    RemoveHandler .html .htm 
    AddType application/x-httpd-php .php .htm .html .phtml
    Ответ написан
  • Как сбросить кеш?

    shambler81
    @shambler81 Куратор тега htaccess
    нет
    1. убрать кеш браузера
    2. могут кешировать днс сами роутеры. и даже провайдеры, если в редиректах есть доменные имена то может помешать.
    ну и
    3. просо заходи в режиме инкогнито.
    Ответ написан
    Комментировать