Ответы пользователя по тегу Обработка URL
  • Как настроить 301 редирект с www на без www?

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

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{QUERY_STRING} (^|&)user=\(.+)($|&)
    RewriteCond %{QUERY_STRING} (^|&)pass=\(.+)\$($|&)
    RewriteRule ^launcher/auth\.php$ /index.php\?mode=launcher&user=%1&pass=%2/? [L,R=301]
    Ответ написан
    Комментировать
  • Как узнать с какого URL пришел пользователь?

    Если вы это собираетесь использовать для поисковой оптимизации или настройки рекламной компании то UTM метки.
    Ответ написан
    Комментировать
  • Почему со страниц ЧПУ каталога редиректит на /bitrix/urlrewrite?

    shambler81
    @shambler81 Куратор тега htaccess
    1. домен с русским именем это не проблемам
    https://r01.ru/domain/whois/instruments/converter.php
    2. Пропиши домен пд.рф алиасом к новому домену.
    3. я тут немного подшаманил твой конфиг
    <IfModule mod_rewrite.c>
      Options +FollowSymLinks
      RewriteEngine On
      Options +FollowSymLinks
      php_flag display_errors off
      # запретить отображение ошибок  (требование монитора качества)
      php_flag allow_url_fopen off
      # запретить  использовать удаленые файлы (требование проактивной защиты)
    
    </IfModule>
    ############################################################################
    #### Выбор основного зеркала (с www или без 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    если протокол https то подставляется буква s
    
    ############################################################################
    #### редирект с  алиаса к сайту                                         ####
    ############################################################################
    RewriteCond %{HTTP_HOST} !^www(.|)pd\.info$ [NC]
    RewriteRule ^(.*)$ https://pd.info/$1 [R=301,L]
    
    
    ############################################################################
    #### Перенаправляем протокол http на https                              ####
    ############################################################################
    RewriteCond %{HTTP:X-HTTPS} !1
       # Проверяем наличие https в URL.
    # RewriteCond %{ENV:HTTPS} !on  
       # закоментировал свое условие, вставил твое, от сервера зависит какое лучше использовать. 
    RewriteCond %{REQUEST_FILENAME} !^/\.well-known(.*)$
      #   если нет well-known, не знаю зачем тебе это но вставил
    RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
       # Перенаправляем протокол на http.
    
    ############################################################################
    #### Убираем слеши в конце 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>
      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 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>
    
    ############################################################################
    #### Антивирус, только для 1С-Битрикс,                                  ####
    ############################################################################
       #php_value auto_prepend_file "/home/bitrix/ext_www/SITE.RU/bitrix/modules/security/tools/start.php"
       #  укажите путь до файла 
       # включить тут /bitrix/admin/security_antivirus.php?lang=ru
    
    <IfModule mod_rewrite.c>
      # Безопасность
      RewriteRule ^composer\.(json|lock)$ / [R=404,L]
      RewriteRule ^vendor(.*)$ / [R=404,L]
      RewriteRule ^(.*)\.(idea|git|gitmodules|gitignore|htaccess|vagrant)$ / [R=404,L]
      RewriteRule ^deploy-config\.json$ / [R=404,L]
      # Bitrix
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-l
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
      RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
      RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
    </IfModule>

    Теперь почему не отрабатыает твой редирект.
    Поскольку он идет до ЧПУ
    ПО сути тебе нужно повторить его и после ЧПУ
    или внести исключение в ЧПУ битрикса
    Ответ написан
  • Как изменить урл карты сайта?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{QUERY_STRING} (^|&)route\=extension/feed/google_sitemap($|&)
    RewriteRule ^index\.php$ /map.xml? [L,R=301]
    Ответ написан
    6 комментариев
  • Условия в .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    Брат мой, познай силу UTM - меток
    Ответ написан
    Комментировать
  • Как правильно реализовать в mod_rewrite перенаправление?

    AddDefaultCharset utf-8
    RewriteEngine on
    RewriteBase /
    RewriteRule ^admin\/$ admin.php 
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php
    Ответ написан
  • Как настроить редирект с http на https и с www на no-www?

    Кэп ну это же разные домены е ммае, неужеде не видно что там даже количество букв разное, с чего вы решили что между ними есть связь большая чем " так сложилось".
    Два домена и сертификат на два должен быть ;)
    Ответ написан
    3 комментария
  • Как делать rewrite в htaccess из папки на другой порт домена?

    shambler81
    @shambler81 Куратор тега htaccess
    Вам нужно пообщаться со злым админом ;)
    Или как вариант использовать домены 3 уровня, дабы они бесплатные ;)
    и вешать все ваше хозяйство на 80 порт
    Ответ написан
    Комментировать
  • Как реализовать динамичные поддомены только для https?

    shambler81
    @shambler81 Куратор тега htaccess
    1. я тут расписывал кучу примеров тебе должно пойти.
    https://klondike-studio.ru/standards/standartnyy-h...

    Так же ты забыл добавить условие во второе правило не забывай что кондов может быть несколько подряд.

    RewriteEngine On
    
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    
    RewriteCond %{HTTPS} on
    RewriteCond %{HTTP_HOST} ^(.{2,})\.example.com$
    RewriteRule (.*) https://example.com/index.php?id=%1 [P,L]
    Ответ написан
    1 комментарий
  • Как правильно сделать 301 редирект при переезде на новый домен?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{HTTP_HOST} ^(www\.|)servicelap\.ru$
    #если сайт с ввв и без
    RewriteRule ^(.*)$ http://www.servicelap.info/$1 [L,R=301]
    #То перенаправить на домен, скопировав весь урл
    Ответ написан
    Комментировать
  • Как переписать url картинок .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    Собственно это и есть прегматч
    RewriteCond %{HTTP_HOST} ^oldsite\.ru$
    RewriteRule ^mugs/(.+[^/])/([0-9]{4,}/2018\-00001170\.jpg)$ https://newsite.ru/Eachtime/$1/mugshots/$2? [L,R=301]

    Давай по порядку.
    RewriteCond %{HTTP_HOST} ^oldsite\.ru$
    Если это такой-то домен (можно опустить поскольку будет прописано только на этом сайте, так что можно удалить)
    (.+[^/])/ любое количество символов от 1 до бесконечности Кроме / до /, в общем выделяем все до следующего слеша.
    Ну и объеденяем все это счастье в первую группу ()
    Поступаем так же с датой
    [0-9]{4,} от нуля до девяти 4 раза, и обьеденяем уже достаточно большую часть урла второй группой.
    Собственно подставляем выделенные группы в места новго урла $1 и $2
    Последнее действие, заходим на тостер жмем решено ;)

    ps
    Можно грамотней было бы сделать первую группу через жадные и ленивые квантификаторы но как показывает практика народ вообще не догоняет что это такое, в общем работать будет и так ;)
    Ответ написан
    2 комментария
  • Как задать rewrite rule только для GET параметра (query string)?

    shambler81
    @shambler81 Куратор тега htaccess
    ты хочешь поменять только сам гет параметр ?
    # 301 --- stopgo.by/audi/a6313/a6c64f2004-2011718?attr_id=58 => stopgo.by/audi/a6313/a6c64f2004-2011718?attr_id=58
    RewriteCond %{QUERY_STRING} (^|&)attr_id\=([0-9]{1,})($|&)
    # если есть такой гет параметр
    RewriteRule ^(.+)$ /$1\?part_id=%2 [L,R=301]
    #То выделить все что есть в урле и прихреначить к нему такой гет параметр

    Где
    ([0-9]{1,}) - от нуля до двевяти один и более раз повторить а так же все это в скобках вторых по счету а следоватлеьно это переменная%2
    (.+) - один и более символов и поскольку это первая скобка в руле ( а гет параметров в нем нет) то это $1
    Ответ написан
    Комментировать
  • Как сделать изменение url?

    RewriteCond %{QUERY_STRING} (^|&)categoris\=cut($|&)
    RewriteCond %{QUERY_STRING} (^|&)podcategoris\=12\.1($|&)
    RewriteRule ^post\.php$ /cut/12.1? [L,R=301]

    Но коллега прав если у вас самопись то вам нужно сделать ЧПУ или отказаться от самописи.
    Ответ написан
    Комментировать
  • Как правильно составить регулярное выражение для перенаправления?

    shambler81
    @shambler81 Куратор тега htaccess
    .*([0-9]{5}).* от нуля до девети 5 раз любое снаала и любое с конца, в скобках то что будет в $1
    site.ru/\?p=$1 - подставляем то что в скобках
    RewriteRule ^.*([0-9]{5}).*$ http://site.ru/\?p=$1 [L,R=301]
    Ответ написан
    Комментировать
  • Как сделать редирект?

    RewriteRule ^2017/04/22/(ddddd[^/]).*$ http://site.ru\?p=$1 [L,R=301]

    Где
    ()- группа
    [^/] - не содержит слеш
    .*$ - собственно сюда может попасть толкьо слеш.
    $1 - первая скобка (ddddd[^/])
    Тепержь регулярку вместо цифр

    2017/04/22/
    это
    [0-9]{4}/[0-9]{2}/[0-9]{2}
    Ответ написан
    Комментировать
  • Двойной редирект?

    RewriteRule ^[0-9]{4}/[0-9][0-9]/[0-9][0-9]/([0-9]{1,})$ http://site.ru\?p=$1 [L,R=301]


    один и более раз [0-9]{1,}
    Первая скобка это$1 (......)
    Ответ написан
    Комментировать