RewriteCond %{QUERY_STRING} ^c=catalog&m=([^&]+)(&per_page=\d+)?$
RewriteRule ^price/ /page-%1/? [R=301,L]
добавить в самом начале, после RewriteEngine On. Если его нету - дописать и после вставить редирект.
audit.antichat.ru/
Какие еще четкие рекомендации здесь могут быть? - Пишите безопасный код, если хотите провести аудит своего скрипта обращайтесь к соответствующим людям. Скажу, что такие спецы берут очень не дешево.
Синтаксис директивы
RewriteRule pattern substitution
если pattern соответствует REQUEST_URI выполняется преобразование substitution. В rewriteRule не обрабатывается QUERY_STRING, т.е. index.php?param == index.php
для вашего примера
RewriteEngine On
RewriteCond %{QUERY_STRING} ^search_rtype=2
RewriteRule ^information.php$ information.html [L]
Похоже, что вы даже синтаксис перепутали
RewriteRule ^information\.html information.php?search_rtype=2 [L]
Флаг R это редирект, не преобразование.
Здесь проще написать функцию транслита, проверять если в урл есть кириллические символы, транслитерировать его и делать редирект. И не нужно по одному адресу перечислять каждый урл.
А стоило.
Ну раз платите денежку показывайте сайт и давайте доступ (в лс если что).
Что у вас на первой строчки?
Если вставляете в скрипт, тогда подразумевается что теги php - <?php ?> нужно убрать (отсюда, не из файла если что)
Перед этим кодом не должно быть вывод текста в браузере (особенно пустых строк перед <?php), так как не сможете отправить заголовки.
А для кириллицы это $uri = $_SERVER['REQUEST_URI'];
замените на $uri = urldecode( $_SERVER['REQUEST_URI'] );
Если набрать index.php?
В самом файле index.php что?
Сам хостер как комментирует это?
После переезда на новый хостинг днс зоны успели обновится?
В htaccess случайно нет записи с DirectoryIndex которая указывает на другой файл, например на статический index.html?
<?php /* * Url куда редиректим обязательно должен * быть последним в списке */ $redir = array( array( '/request_url_1', '/url_to_redirect_1', ), array( '/request_url_2', '/request_url_2_2', '/url_to_redirect_2', ) ); $uri = $_SERVER['REQUEST_URI']; foreach( $redir as $r ) { $url = array_pop( $r ); if( count($r) > 1 ) { foreach( $r as $v ){ if( $uri == $v ){ header( 'Location: '.$url, true, 301 ); exit; } } } else { if( $uri == $r[0] ){ header( 'Location: '.$url, true, 301 ); exit; } } } /* Общий редирект */ header( 'Location: /index.php', true, 301 ); exit; ?>
Кто хочет может добавить себе поддержку регекспов
Во втором, моем. Я вроде написал, что первый работает для ГЕТ, значит для ПОСТ он работать не будет. Тут еще вопрос каким образом запрашивает страницу бот.
Если юзаете вариант [umka], к ГЕТ можно еще добавить и HEAD - ^(?:GET|HEAD)