RewriteRule ^([^/]+/)?([^/]+)\.(\w+)$ index.php?path=$1page=$2&ext=$3 [L]
или как-то так
RewriteRule ^\d(\d)(\d\d)$ http://site$1.ru/link/$2 [R,L]
если правильно описали соответствия для редиректа
Это разные вещи. Flv это видео, swf - плеер. Таким образом вы заблокировали доступ к плееру, а видео если оно доступно по прямую ссылкой можно воспроизвести другим плеером
Страницы/видео не должно быть в кеше браузере, иначе будет он отдаваться оттуда. А так код вроде бы рабочий. Ну и плюс ко всему, браузер должен передовать реферер. Или удалите эту строку - RewriteCond %{HTTP_REFERER} !^$ тогда видео будет блокироваться и с отсутствием у пользователя реферера.
RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?вашсайт.ru/ [NC] RewriteCond %{HTTP_REFERER} !^http://(www.)?google.com/ [NC] # Разрешаем доступ для гугл-бота RewriteRule .*\.(flv)$ - [F]
Яндекс вполне мог сработать на зашифрованный код, который вы заменили на нормальную ссылку.
Отработать то отработает, но если чпу реврайтится на article.php?article_id= получится в итоге зацикливание без байпаса.
Это как спрашивать что лучше, мягкое или теплое. Первое отправляет аджакс пост запрос, второе отправляет форму средствами жс. Вообще антивири никаким боком это не должны блокировать. Если не работает включите консоль ошибок и ищите ошибки в коде.
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} article_id=(\d+)
RewriteRule article\.php /article/%1/? [R=301,L]
Добавить после r-engine on
ТС, если вы не догадались указать свои параметры для работы, и рабочий вариант у вас также выглядит, то вам лучше попросить человека за скромное вознаграждение настроить скрипт для запуска. Зачем приводить код, если это тоже самое что я писал на предыдущей странице?
Хотя пожалуй вот это
if( preg_match( $patt, $row[$rname] ) ) { $row[$rname] = preg_replace( $patt, '', $row[$rname] ); mysql_query( "UPDATE `{$table}` SET `{$rname}`='".mysql_real_escape_string($row[$rname])."' WHERE id={$row['id']}" ); }
лучше заменить на это
if( preg_match( $patt, $row[$rname] ) ) { $row[$rname] = preg_replace( $patt, '', $row[$rname] ); mysql_query( "UPDATE `{$table}` SET `{$rname}`='".mysql_real_escape_string($row[$rname])."' WHERE id={$row['id']}" ) or die( mysql_error() ); echo "Update row {$row['id']}<br />"; } else { echo "Pattern not found in {$row['id']}<br />"; }