Задать вопрос
Ответы пользователя по тегу htaccess
  • Htaccess и нуб)что делать?

    shambler81
    @shambler81 Куратор тега htaccess
    Скорее всего у вас проблема с хостингом, кто-то не смог нормально положить сайт не в паблик, или сделать нормальный документ рут, в результате пришлось накрутить костыль сверху еще одним .htaccess который уже кидал все в паблик
    Ответ написан
    Комментировать
  • Как исправить ошибку RewriteRule?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteRule ^f.min.reg/?$ /inc/forms/mini_reg.php -это домен он не входит урл, с ним работать нужно через rewrite cond
    все остальные с квантификатором что по вашему должен делать?$ ?
    Ответ написан
    Комментировать
  • Как правильно переадресовать адрес в .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    1. поменяй приоритет принудительного индексного файла на html, как правило php имеет больший приоритет
    DirectoryIndex index.html index.php

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^api index.php [L]

    должен находиться над основным чпу
    Ответ написан
    Комментировать
  • Редирект htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    В вашем случае регулярку не составить посколкьу минимальное количество элементов в ней это перечислить тупо все домены (msk|spb|uk|kz) и тд .

    Или например вот так
    (.+[^/]) один или более символов но не слеш ( то есть выделить все до первого слеша)
    RedirectMatch ^(.+[^/])/link1$ http://vash-site.ru/$1/link2
    Ответ написан
    Комментировать
  • Редирект через htaccess по кукам?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{REQUEST_URI} !post/123$
    RewriteRule ^/cookie_value$ /тут_что_хотели/? [L,R=301]
    Ответ написан
  • Как сделать редирект с htaccess c get параметрами?

    shambler81
    @shambler81 Куратор тега htaccess
    так бы выглядел редирект С гет параметра на обычный урл.
    # 301 --- http://www.mydefile.ru/lookbook/?type=Лукбуки&PAGEN_1=2 => http://www.mydefile.ru/news/lookbooks/
    RewriteCond %{QUERY_STRING} (^|&)type=Лукбуки($|&)
    RewriteCond %{QUERY_STRING} (^|&)PAGEN_1=2($|&)
    RewriteRule ^lookbook/$ /news/lookbooks/? [L,R=301]

    В твоем случае наоборот тут все еще значительно проще, ты просто перепутал % и $
    RewriteRule ^forum/([^&]+)-([^&]+)-([^&]+)$ /forum/index.php\?threads/$1/$2/page-$3 [L,R=301]

    И не забудь экранировать вопрос
    А проценты делаются так
    RewriteCond %{REQUEST_URI}  forum/([^&]+)-([^&]+)-([^&]+)
    RewriteRule forum .*$ /forum/index.php?threads/%1/%2/page-%3

    ТАк же их можно комбенировать скобки из рула и конда
    тогда будет так
    $1%1
    Теперь по поводу регулярки что-то она у тебя очень странная. что именно она по твоему мнению делает ?
    Скинь пару урлов которые она должна выделять
    Ответ написан
    Комментировать
  • Удалить часть URL через htaccess или php?

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

    shambler81
    @shambler81 Куратор тега htaccess
    GET не является частью урла по этому выделяется отдельно.
    # 301 --- http://www.mydefile.ru/lookbook/?type=Рекламные+кампании&PAGEN_1=2 => http://www.mydefile.ru/news/campaigns/
    RewriteCond %{QUERY_STRING} (^|&)type=Рекламные\+кампании($|&)
    RewriteCond %{QUERY_STRING} (^|&)PAGEN_1=2($|&)
    RewriteRule ^lookbook/$ /news/campaigns/? [L,R=301]


    Все что вам остается это собрать группу в гет параметре
    RewriteCond %{QUERY_STRING} (^|&)(coin=Name)($|&)
    RewriteRule ^.*$ %2? [L,R=301]

    Где %2 вьлоая группа из RewriteCond - аналог $2 если бы это был рул
    Так же в правиле я показал что параметр может быть где угодно как начинаться с ? так и с &
    Если без этого, то можно еще проще
    RewriteCond %{QUERY_STRING} (coin=.+)
    НУ и разумеется это уже будет %1
    ОБРАТИТЕ ВНИМАНИЕ ЧТО
    RewriteRule ^.*$ /%2? [L,R=301]
    в конце стоит знак вопроса, он удалит все гет параметры с пути.
    Ответ написан
    Комментировать
  • Как направить несколько поддоменов на один каталог сайта?

    shambler81
    @shambler81 Куратор тега htaccess
    Пример для апача
    <VirtualHost *:80>
     DocumentRoot /var/www/site.ru
     ServerName site.ru
    ServerAlias www.site.ru dev.site.ru dev2.site.ru  и так далее.
    Ответ написан
    Комментировать
  • Как сделать редирект со всех поддоменов, кроме одного, на основной?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{HTTP_HOST} ^.+\.site\.ru$ 
    RewriteCond %{HTTP_HOST} !^spb\.site\.ru$ [NC]
    RewriteCond %{HTTP_HOST} !^www\.site\.ru$ [NC]
    RewriteRule ^(.*) http://site.ru/$1 [R=301,L]


    www.exlab.net/files/tools/sheets/mod_rewrite/mod_r...
    Ответ написан
    2 комментария
  • Какое правило для mod rewrite нужно добавить?

    shambler81
    @shambler81 Куратор тега htaccess
    # 301 --- http://www.mydefile.ru/company/?section=torgovlya&PAGEN_1=9 => http://www.mydefile.ru/about/
    RewriteCond %{QUERY_STRING} (^|&)section=torgovlya($|&)
    RewriteCond %{QUERY_STRING} (^|&)PAGEN_1=9($|&)
    RewriteRule ^company/$ /about/? [L,R=301]


    Из них (^|&)........($|&) это всего лишь допущение что гет может начинатья как с начала так и быть через &.

    есливам нужно удалить гет пармметры то добавьте просто знак вопроса в конце.
    RewriteRule . /index.php? [L]
    Если вам нужно сделать редирект НА гет парметр, то на некоторых серверах нужно буедт закэкранироватьзак вопроса.

    RewriteRule . /index.php\?id=22 [L]
    Ответ написан
    Комментировать
  • Как сделать 301 редирект?

    shambler81
    @shambler81 Куратор тега htaccess
    а вы % экранировали, ващет то тоже часть регулярного выражения, обозначает группу из rewrite cond на подоие $1 из рула.
    Redirect 301 /en/parlour-profile/massage-parlour-anna-berry-massage-louise-sensual-massage\%E2\%80\%8B /en

    как вариант сделать менее строгой
    \w — буква, цифра или подчёркивание _.
    \d — заменяет любую цифру.
    \D — заменяет любой символ, но не цифру.
    Ответ написан
    Комментировать
  • Как сделать редирект по нескольким фильтрам через .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{REQUEST_URI} !^domain/img/.*$
    RewriteCond %{REQUEST_URI} !^domain/video/.*$
    RewriteCond %{REQUEST_URI}  .....
    RewriteCond %{REQUEST_URI}  и так далее, это  и если, и будет копиться условия до первого рула, ! - знак отрицания.
    RewriteRule  а тут что должно произойти
    Ответ написан
    6 комментариев
  • Как сделать 301 редирект для пагинации?

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

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ! тут ваше выражение
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^((?s).*)$ index.php?act=/$1 [QSA,L]


    Теперь о втором слеше.
    1. [^/] - кроме слеша, соответственно (.+[^/]) будет до первого слеша и так далее
    2. Почитайте про жадные и ленивые квантификаторы.
    Ответ написан
    Комментировать
  • Как сделать массовый 301-редирект через htaccess с заменой адреса товара?

    shambler81
    @shambler81 Куратор тега htaccess
    1. какой идиот придумал делать пробелы в урле?
    2. Надеюсь "купить" - это не гений который придумал еще и русские буквы вставить.
    3. дай 4 реальных урлов, как было как стало.
    Ответ написан
    Комментировать
  • Если доступ закрыт через .htaccess с помощью .htpasswd, то как разрешить доступ без пароля к определённой папке?

    shambler81
    @shambler81 Куратор тега htaccess
    положи в эту папку .htaccess
    он перебивает права вышестоящего и наследует.
    Ответ написан
  • Одновременный редирект с www на без www и c http на https на битриксе?

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

    Тут все для битрикса, а проблема у вас с циклом из за nginx+apache конфигурации.
    https://klondike-studio.ru/standards/standartnyy-h...
    Ответ написан
    Комментировать
  • Что лучше header() vs htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    У каждого из инструментов есть свови плюсы.
    HTACCESS
    + "ожидаемое" место для таких вещей, и SEOшник полезет туда в их поиске.
    + Есть много готовых пресетов и гернраторов для правил.
    - Странное поведение редиректов ( нужно хорошо знать mod_rewrite чтобы понимать что и почему происходит)
    - не работает на nginx и iis
    - трудность создания редиректов с гет параметрами.
    - большое количество редиректов снижает производительность сайта ( Но на практике не заметно)

    php
    + нет проблем с редиректами GET параметров
    + нет последовательности кодов типа 301 +301 +301+200
    + можно сделать редирект типа сделать 301 если текущий статус урла 404 да и вообще можно положить в
    404.php ( в .htaccess тоже можно но через ...)
    + сработает на любом веб сервере
    -нестандартное место и искать их никто не будет
    -seo шник не знает php
    Ответ написан
    Комментировать