Ответы пользователя по тегу htaccess
  • 301 редирект только одной папки - как?

    @ShamblerR
    # если имя сайта с ввв и без, не забываем экранировать точки
    RewriteCond %{SERVER_NAME} (www\|)\.site1\.ru
    # если начало урла начинается с files
    RewriteCond %{REQUEST_URI} ^(files.*)$
    # если правила выполены, перенаправляем  (Берем переменку с Cond  то  онии  не с $1 a %1
    RewriteRule ^.*$ http://site2.ru/%1
    Ответ написан
    Комментировать
  • Нужен ли вообще RewriteBase?

    @ShamblerR
    нужен и даже очень.

    Пример если /
    без директивы$1 = /var/www/site/web/четотам
    с директивой $1=/

    Помоему профит очевиден

    теперь по
    AuthUserFile /home/u171101/mysiteru/www/admin/.htpasswd

    Поставь OpenServer и использоуй путь линуксовый.
    Если прям так приспичило то создай такую папку в структуре, и сделай ее лиинкой.
    Будет тебе счастье
    Ответ написан
  • Как сделать переадресацию с GET параметра на поддомен?

    @ShamblerR
    вы уже ответили на свой вопрос, задав его правильно.
    Вы уловили мысль что GET перенаправляется по другому.
    Все что вам осталось теперь, это найти как это делается ;)
    Все что я могу порекомендовать вам это
    google + редирект с GET
    Ответ написан
  • Как сделать редирект с поддомена через .htaccess?

    @ShamblerR
    RewriteCond %{SERVER_NAME}% !^www\.site\.ru$ 
    RewriteCond %{SERVER_NAME}% ^(.*)site\.ru$ 
    RewriteRule ^(.*)$ http://drugoysite%1.ru/$1 [R=301,L]

    как-то так
    но нужно проверить
    Ответ написан
    Комментировать
  • Не работает скрипт htaccess на новом хостинге, как исправить?

    @ShamblerR
    вас не смущяет эта херня ? RewriteRule ^(.*) %{HTTP_HOST}$1
    10
    20 GOTO 10

    и кстати вот эта ? RewriteRule ^(.*)\.dssaw\.ru(.*) /sub/
    А почему у вас нет никакого статуса при редиректе ?
    Ответ написан
  • Как настроить внутренний редирект в htaccess?

    @ShamblerR
    у вас в регулярке ошибка притом критичная
    например страничка /megagif будет считаться файлом

    у вас
    RewriteCond %{REQUEST_URI} (.*).(jpg|png|jpeg|gif)$ [NC]
    нужно
    RewriteCond %{REQUEST_URI} (.*)\.(jpg|png|jpeg|gif)$ [NC]
    Ответ написан
    1 комментарий
  • Как запретить доступ к определенной странице на WP для GoogleBot через htaccess?

    @ShamblerR
    +1 тебе бы еще разрешить ему
    он вообще трепетно относится к robots.txt и даже js css файлы с папок дисалоу не берет.
    2. не кисло пользоваться гуглом
    3. Если совсем сурово
    RewriteCond %{HTTP_USER_AGENT} ^GoobleBot*
    RewriteRule ^2015/09/06/test-1$ /404.php [L]
    Ответ написан
    Комментировать
  • Как с помощью htaccess добавить обратный слэш в конце домена и части разделов?

    @ShamblerR
    странно вообще то, обычно или следят за двойными страницами или нет,но частично???? это зачем
    Теперь смотри
    1. не везде можно добавить / например его нельзя добавить к html файлу так что нужно еще правило следящее за такой фигней
    2. если тебе нужен просто слеш после домена так поставь его в куда /куда и все
    3. Если тебе нужно на определеном уровне сработку скажем на 3 то следовательно и пропиши в условие
    4. Если тебе нужно избавитсья от дублей то

    ############################################################################
    #### Убираем повторяющиеся слеши (/) в URL                              ####
    ############################################################################
    RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
       # Проверяем, повторяется ли слеш (//) более двух раз.
    RewriteRule . %1/%2 [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]
       # Добавляем слеш в конце.
    Ответ написан
    Комментировать
  • Как сделать редирект с одного домена на страницу другого домена?

    @ShamblerR
    RewriteEngine on
    #Включает редиректы
    
    RewriteCond %{HTTP_HOST} ^!site2\.ru$ [NC]
    #Если хост не содержит сайт 2 ( для отключения цикличности)
    
    RewriteCond %{REQUEST_URI} ^user/firstlogin$ 
    #Если содержит урл ( тут подправь что тебе точно нужно, регулярку если потребуется)
    
    RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
    #перенаправить все что есть на новый домен с сохранением урла ( без гет запросов, про них ничего не спрашивал)
    Ответ написан
    1 комментарий
  • Как настроить постоянный редирект?

    @ShamblerR
    RewriteCond %{REQUEST_URI} ^(.*)/message/(.*)$
    RewriteRule ^(.*)$ %1/mess/%2 [R=301,L]

    ну и не забудь про передачу гет парметра
    Ответ написан
    Комментировать
  • Можно ли в .htaccess запретить доступ ко всему кроме одного файла?

    @ShamblerR
    реврайт конд реквест ури !урл
    Ответ написан
    Комментировать
  • Как правильно написать регулярное выражение с отрицанием для .htaccess?

    @ShamblerR
    Вообще вы не правы, поскольку при 10 сайтах реально проще сделать включение чем исключение по 3 буквам, уж больно высока вероятность попадения в этот диапазон. Так же не в ури вначале помоему нет слеша потому и не раотает.
    так же не забудьте о регистронезависимости
    RewriteCond %{REQUEST_URI} ^(it|ru|com|kz|ua) [NC]
    RewriteRule ^.*$ http://%{SERVER_NAME}/some_page.html [R=301,L]


    Кстати зачем вам 302?
    Ответ написан
  • Сайт на wordpress, лендинг по адресу site.com/landing/ так же имеет админку на wp отдельную от основного сайта, полностью не зависимые?

    @ShamblerR
    1.дай .htaccess на главном сайте.
    2. что происходит со 2 сайтом если на первом нет .htaccess ? он начинает работать ?
    3. если да то в часть где у тебя чпу добавь исключение
    реврайт конд %реквест ури ! ^/landing/.*
    Ответ написан
  • .htaccess как заменить символ в строке?

    @ShamblerR
    У вас не урл GET запрос
    Собственно редирект нужно делать с гет запросом, один из вариантов вам описал коллега выше.
    Ответ написан
    Комментировать
  • Как сделать редирект c http на https для всех кроме одной страницы?

    @ShamblerR
    RewriteCond %{REQUEST_URI} !$ваш_урл1$  [NC,OR]
    RewriteCond %{REQUEST_URI} !$ваш_урл2$  [NC,OR]
    RewriteCond %{REQUEST_URI} !$ваш_урл3$  [NC,OR]
    RewriteCond %{REQUEST_URI} !$ваш_урл4$  [NC]
    # Последний без OR поскольку нет следующего или просто NC
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    Ответ написан
    Комментировать
  • Что не так с этим правилом для .htaccess?

    @ShamblerR
    Все так, давай весь конфиг .htaccess
    не учтено толко www
    Пока можешь попробовать вот так
    RewriteRule . %1/%2 [R=301,L]
    Ответ написан
    1 комментарий
  • Как убрать повторяющиеся слэши в .htaccess?

    @ShamblerR
    Дааю сразу все поскольку в свое время задолбало для каждого проекта делать все заново, по этому сейчас просто вставляю кусок и все.
    ############################################################################
    #### 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}
       # Перенаправляем протокол на 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 %{REQUEST_URI} ^(.*)/{2,}(.*)$
       # Проверяем, повторяется ли слеш (//) более двух раз.
    RewriteRule . %1/%2 [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.
    
    ############################################################################
    #### Конец общей части, далее следует собственные директивы .htaccess   ####
    ############################################################################
    Ответ написан
    5 комментариев
  • Не работает формирование ЧПУ через .htaccess?

    @ShamblerR
    было
    RewriteRule RewriteRule ^category-([^-]*)-product_id-([^-]*)\.html$ /products-page/?category=$1&product_id=$2 [L,QSA]

    стало

    RewriteEngine On
    RewriteBase /
    RewriteRule ^category-([^-]*)-product_id-([^-]*)\.html$ /products-page/?category=$1&product_id=$2 [L,QSA]

    Но сдается мне что будут еще проблемы с гет запросами, да и сама регулярка странная,
    Можно пару урлов для просмотра ?

    Очень смущяет вот это
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    похоже на условие для чпу
    которое срабатывает для
    RewriteRule ^category-([^-]*)-product_id-([^-]*)\.html$ /products-page/?category=$1&product_id=$2 [L,QSA]

    а не для
    RewriteRule . /index.php [L]
    Короче опусти свою строчку ниже
    RewriteCond - если
    RewriteCond - если
    RewriteCond -если
    RewriteRule -то
    RewriteRule - следуюещее правило не связано с первыми кондами
    Ответ написан
    Комментировать
  • Как написать правила Redirect в .htaccess для файлов во вложенных каталогах?

    @ShamblerR
    ну для начала
    Redirect 301 не работает с регулярками.
    Решение 1: почитайте тут klondike-studio.ru/blog/vse_pro_hosting/301-redire...
    я тут описал основные снипеты для сео редиректов. Ваш случай в низу.
    Решение 2: ленивое! https://donatstudios.com/RewriteRule_Generator
    Ответ написан
    2 комментария