Так не работает, потому что mod_rewrite по-умолчанию разбирает адреса без параметров.
RewriteEngine On
RewiteRule index.php?categoryid=647 http://your-website.ru [R]
Обновление:
А так работает:
#ищем необходимый параметр и его значение
RewriteCond %{QUERY_STRING} categoryid=647 [NC]
#делаем редирект, если найден параметр из предыдущей строки
RewriteRule .* http://your-website.ru? [R,L]
Обновление 2
А что комментировать?
В этом варианте четко определяется, что именно /index.php?categoryid=647
будет перенаправлен на http://other_site.ru
. В моем варианте все страницы (/about.php?categoryid=647 или /wtf.php?categoryid=647
) будут перенаправлены на http://your-website.ru
============================
Хотя правильнее было бы делать так:
\#определяем страницу, к которой будет вызов с параметром categoryid
RewriteCond %{REQUEST_URI} ^/about.php [NC]
\#определяем значение параметра
RewriteCond %{QUERY_STRING} categoryid=647 [NC]
\#делаем редирект
RewriteRule http://your-website.ru? [R,L]
Да, и еще categoryid
у них обязательно должен идти первым параметром. Т.е. /index.php?param=true&categoryid=647
не сработает. И у меня еще регистронезависимость во всех строчках и параметрах стоит. ))