Ответы пользователя по тегу Обработка URL
  • Как удалить GET параметр из url при помощи файла .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    это если тебе нужен любой из гет параметров
    RewriteCond %{QUERY_STRING} (?:^|&)id\=(.*)(?:$|&)
    RewriteRule ^employeedb3/id$ https://employeedb3/%1? [L,R=301]

    ну и частный случай
    RewriteCond %{QUERY_STRING} (?:^|&)id\=(id_000001)(?:$|&)
    RewriteRule ^employeedb3/id$ https://employeedb3/%1? [L,R=301]


    %1 это не опечатка, это первая группа из RewriteCond
    Ответ написан
  • Почему не работает 301 редирект Godaddy?

    1.если вы купили домен и хотите его склеить с другим, ему не нужен хостинг, делигируйте его на тот-же сервер где и основной домен.
    2.Создайте соответствующую днс зону
    3.В настойках веб панели основного домена укажите "зеркало"
    Как правило это где-то в настройках там где добавляется www
    через пробел укажите свой новый домен.
    В результате в конфиге апачь или nginx будет что-то вроде.
    server {
            listen *:80;
            server_name klondike-studio.ks03.ru www.klondike-studio.ks03.ru   ;
            root /var/www/klondike-studio.ks03.ru/web;


    и у сайта будет сразу несколько доменов.
    И редиректор удобно будет настраивать не на 10 сайтах
    а в одном конфиге.

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^Godaddy \.com
    RewriteRule ^(.*)$ http://kraudmarketing.com/$1 [R=301,L]
    Ответ написан
  • Как правильно сформировать URL с utm-метками и переменными сортировки?

    никак, на сайте не должно быть страниц с ГЕТ параметрами. ( UTM не в счет)
    Вамо нужно настроить нормальне чпу
    А мусорные страницы типа товар красный размер31 с ценой от35-до100 для дома, смело можно исключать из индекса.
    По факту должны остаться раздел и элементф инфоблоков.
    все с настроеным SEO модулем.
    плюс пара статических index но там свои настройки.
    Остальные страницы просто запретитьк индексации напрочь. ( как правило весь смарт фильтр, заказы обращения ит тд)
    в таком случае не будет и проемы.
    А уж странички с указанием сортировки сверху вниз или снизу вверх, индексироват вообще дебилизм.
    Вы про канибализацию запросов слышали ?
    Тем более у вас там бдут полностью неуникальные тайтлы и дескрипшены)
    И да пейдженацию тоже блокировать от индекса, качать только 1 страничку.
    Вплоть до внесение в хедер риал каноникал на текущую страницу удалив гет прамметры
    Ну и запрет в роботс и сайтмап индексировать все гет параметры, дабы небыло желания.
    и все что у вас будет в гет параметрах то UTM в купе с запретом на их индексацию.
    Ответ написан
  • Редирект для товаров с кучей модификаций?

    Вот редирект по тз
    RewriteRule ^kresla_kachalki/kreslo_glayder_model_101/$ /kresla_kachalki/kreslo_glayder_model_101\-id6800/? [L,R=301]
    но откуда и по какйо логике берется айди,
    как отличаются собственно урлы и по какой логике им клеить айди ?
    в вашем примере я не вижу этой логики.
    У всех будет добавляться один и тот-же айди ?
    Теперь что касается Модификаторов, насколько я понимаю это должны быть GET параметры а не прям в урл их пихать.
    Соответсвенно вы пытаетесь сделать из нормальных урлов -> уродские в чем смысл, ведь редиректы делают в первую очередь для SEO а для него такие ходы конем не нужны.
    В общем дайте более развернутое тз
    Хотябы с 2 урлами в примере.
    НУ и для его по вашей идее вы это делаете.
    Ответ написан
  • Обработает ли nginx файл с 50k редиректами?

    без проблем
    Если боитесь нагрузки то сделайте эти редиректы в 404.php
    собственно в таком случае они будут срабатывать только когда к ним будут обращаться в остальных случаях они вообще не будут грузить систему. да и при переезде не нужно будет думать о них.
    Ну и писать их в нем легче ;)
    Ответ написан
  • Как правильно сделать правило .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    редиректы с гет параметрами делаются немного по другому нежеле обычные
    https://donatstudios.com/RewriteRule_Generator
    Спаибо кэп это круто! Вот тебе отмечено как решенный
    Ответ написан
  • Как сделать правильный битрикс редирект с раздела на другой раздел?

    shambler81
    @shambler81 Куратор тега htaccess
    раз 20 перечитал для того чтб хоть как-то понять

    RewriteCond %{REQUEST_URI} ^/dir1/(.*)$ 
       # если строка начинается с /dir1/ 
    RewriteRule ^(.*)$ /dir2/%1 [R=301,L]


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

    не нужно его нигде размещять. размести его там же где и твой сатйт aliase (псевдоним,зеркало) и все
    так в коде
    ServerName test1.loc
      ServerAlias test2.loc www.test2.loc www.test1.loc

    или в веб панели есть место где можно его добавить
    isp8.png
    на скриен видешь где домены, просто проииши на этом же днс сервере новый домен
    А но отдельный сайт не создавай.
    в результате у сайта появится зеркало
    ну и в .htaccess просто поставь редирект.
    Ответ написан
  • Почему не работает 301 редирект(CMS - webasyst)?

    дай весь список было - стало
    я напишу тебе список редиректов по маске
    Ответ написан
  • Почему не срабатывает 301 редирект?

    shambler81
    @shambler81 Куратор тега htaccess
    1. редирект до ядра битрикса поскольку .htaccess читатся сверху вниз по кругу до полного устаканивания и место имеет значение.
    2. https://klondike-studio.ru/standards/standartnyy-h... тут писало возможно будет еще что-то полезное.
    3. используйте классический формат записи он позволяет более гибко работать с regexp
    RewriteRule ^dopoborudovanie/index\.php$ /service/dopolnitelnoe\-oborudovanie/? [L,R=301]
    Ответ написан
  • Как учитывать переходы в метрике при .htaccess редиректе?

    shambler81
    @shambler81 Куратор тега htaccess
    ну здрасти добавить условие в php
    ЕСЛИ ХОСТ ТО ЭТА ЖС
    ЕСЛИ ХОСТ2 ТО ЭТА ЖС все
    htccess дом моделью не занимается
    Ответ написан
  • Как написать редирект?

    Ох ванную похоже товарищ имеет в виду что он хочет запилить ЧПУ однако ;)
    blog.ox2.ru/php/hpu
    Ответ написан
  • Как верно настроить редиректы со старого сайта из поддиректории?

    Так сделать просто редиркт частного случая.
    RewriteRule ^product\-category/dorozhnyj\-chemodan\-guess$ /dorozhnyj\-chemodan\-guess/? [L,R=301]

    Но в вашем случае нужно как-то автоматизировать, вместо запрошеных 30 строк вы дали 3
    так что я не знаю сколько у вас ( продуктов есть ли в них логика так что оставляю их на вашу совесть ).
    так будет редирект всех продуктов на без них

    RewriteRule ^product\-category/(.+)$ /$1 [L,R=301]
    где (.+) - групаа из 1 и более символов, и она же подставляется в $1

    НУ и соответственно все варианты, притом последовательность важна. поскольку old/product попадает в маску все что после олд, и должен отработать до него.

    RewriteRule ^product\-category/(.+)$ /$1 [L,R=301]
    RewriteRule ^old/product/(.+)$ /$1 [L,R=301]
    RewriteRule ^old/(.+)$ /$1 [L,R=301]
    Ответ написан
  • Можно ли как сделать массовый редирект ссылок?

    В битриксе нельзя убрать первую element посколку это инфоблок. тут может быть любое название но от этого сути не меняет.
    так что убрать ее полностью нельзя, как и брать с разных инфоблоков одну и туже инфу.
    Если же вам нужно чтоб они открывались по двум урлам то это канибализация запросов и это тоже так себе решение.
    однако можно делать следующим образом
    1. сделать редирект с кодом 200 вместо 301 на такие урлы.
    2. рзместить его до ЧПУ
    все

    А еще лучше напишите зачем вам это, потому-что вы делаете какую-то дичь, возможно то что вы пытаетесь сделать можно сделать нормальным способом
    Ответ написан
  • Как сделать редирект "domain.ru/?" на "domain.ru"?

    Так если тебе нужно именно при этом гет параметре
    RewriteCond %{QUERY_STRING} (?:^|&)id\=раздел(?:$|&)
    RewriteRule ^$ /? [L,R=301]


    А если просто удалить гет параметр то поставь знак вопроса в конце и это будет означать удалит гет.
    RewriteRule ^$ /? [L,R=301]
    Ответ написан
  • Как выдать пользователю изменённую веб страницу?

    https://gist.github.com/codedokode/ea0503ecb0efbc3...
    собственно все что после этого остается это стреплейсом поменять что тебе нужно и все
    и того займет это 2 строчки кода
    ты же по факту получаешь DOM все что остается это заменить ту часть что тебе нужна
    Ответ написан
  • Как настроить nginx тобы порт 80 работал и на http и на https?

    вы RFC ваще читать умеете ?
    вы новый интернет зачем придумываете?
    редирект на https, все !
    Ответ написан
  • Как добавить слеш в конце url?

    shambler81
    @shambler81 Куратор тега htaccess
    Тупо добавлять слеш нельзя поскольку с семантической точки это неправильно
    это нужно добавить если это каталог, или виртуальный каталог, и наоборот убрать если это файл
    к примеру /index.html/ - это смотрится тупо и сематнически неверно.
    Так что нужно и добавлять и удалять.
    так же я подправил требования под гугл пейдж спид.
    вот держи
    RewriteEngine on 
    #  Директива включает редиректы.
    ErrorDocument 404 /404.html
    # 404 ведет на 404.html
    
    ############################################################################
    #### Выбор основного зеркала (с 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
    
    ############################################################################
    #### Перенаправляем протокол http на https                              ####
    ############################################################################
    RewriteCond %{HTTPS} off
       # Проверяем наличие https в URL.
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
       # Перенаправляем протокол на http.
    
    ############################################################################
    #### Убираем index.php, если он есть в конце URL                        ####
    ############################################################################
    RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
       # URL cодержит index.php в конце.
    RewriteCond %{REQUEST_METHOD} =GET
       # Выявляем GET запрос в URL (не POST).
    RewriteRule ^(.*)$ %1/ [R=301,L]
       # Удалить index.php из URL.
    
    ############################################################################
    #### Убираем повторяющиеся слеши (/) в URL                              ####
    ############################################################################
    RewriteCond %{THE_REQUEST} //
       # Проверяем, повторяется ли слеш (//) более двух раз.
    RewriteCond %{QUERY_STRING} !http(s|)://
      # Убедимся что это не урл в  GET
    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]
       # Добавляем слеш в конце.
    
    
    ############################################################################
    #### если это заглавные буквы от трех до девяти например ВАСЯ.html      ####
    ############################################################################
    
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP
    # если это английские заглавные буквы от 3 до 9
    RewriteRule ^([^.]+)\.html$ https://auto-cartel.ru/$1 [R=301,L]
    # то  удалить html останется просто /ВАСЯ, на другие случаи не распространяется.
    
    ############################################################################
    #### ЧПУ ДВИЖКА стоит всегда в самом низу правил                        ####
    ############################################################################
    RewriteCond %{REQUEST_URI} !(\.[^./]+)$
    RewriteCond %{REQUEST_fileNAME} !-d
    RewriteCond %{REQUEST_fileNAME} !-f
    RewriteRule (.*) /$1.html
    
    ############################################################################
    #### Компрессия статического контента для гугл  спид тест               ####
    ############################################################################
    <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 1 year"
      ExpiresByType image/svg "access plus 1 year"
      ExpiresByType image/gif "access plus 1 year"
      ExpiresByType image/png "access plus 1 year"
      ExpiresByType text/javascript "access plus 1 year"
      ExpiresByType text/css "access plus 1 year"
      ExpiresByType application/javascript "access plus 1 year"
      ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
      ExpiresByType application/x-font-ttf "access plus 1 year"
      ExpiresByType application/x-font-opentype "access plus 1 year"
      ExpiresByType application/x-font-woff "access plus 1 year"
      ExpiresByType image/svg+xml "access plus 1 year"
    </IfModule>
      <IfModule mod_headers.c>
      <filesmatch "\.(ico|flv|jpg|jpeg|webp|png|gif|css|swf|woff|pdf)$">
        Header set Cache-Control "max-age=31536000, public"
      </filesmatch>
      <filesmatch "\.(html|htm)$">
        Header set Cache-Control "max-age=7200, private, must-revalidate"
      </filesmatch>
      <filesmatch "\.(pdf)$">
        Header set Cache-Control "max-age=86400, public"
      </filesmatch>
      <filesmatch "\.(js|otf|ttf|woff|woff2)$">
        Header set Cache-Control "max-age=31536000, private"
      </filesmatch>
      </IfModule>
    ############################################################################
    #### Конец общей части, далее следует собственные директивы .htaccess   ####
    ############################################################################
    Ответ написан
  • Как настроить редирект для страниц сортировок в каталоге?

    shambler81
    @shambler81 Куратор тега htaccess
    1. Гет не является частью урла по этому вывделяется по другому
    2. как это сделать https://donatstudios.com/RewriteRule_Generator
    3. ОБрати внимание он всегда генерит все урлы в конце со знаком ? - он удалит все гет параметры, в пративном случае они останутся.
    4. что касается любого места тут чтоб не запутаться, включая ? и & так что это не имеет значения.
    5. Если тебе нужно часть гет вставить в урл

    Теперь тебе нужно будет объеденить в группы то что в верху по этому ты вместо нужного тебе гет параметра пишешь что-то вроде (.+)
    и вставляешь ее где тебе нужно но уже не $1 а %1 поскольку они идут из реврайт конда.
    Да квантификатор ?:удаляет эту группу из выбора по этому у тебя будет первая
    Но это если тебе нужно будет взять часть гет параметра и вставить ее в урл
    Ответ написан