Перенаправление запросов в CMS Joomla вида www.site.com/?p=1234 на другой домен или другую страницу. Со включенной стандартной системой редиректов Joomla 3 это сделать не так просто, запросы перехватывает система управления сайтом, а обычный 301 Redirect с помощью строки в .htaccess
Redirect 301 /?p=1234 http://site.ruпросто игнорируется. Документация по mod_rewrite гласит что нам нужна обязательно другая часть URL в виде index.php перед строкой запроса, т.е. вот так /index.php?p=1234, но в нашем случае url не содержит ничего перед запросом.
Попробуйте прописать правило редиректа QUERY_STRING в .htaccess
RewriteCond %{QUERY_STRING} =p=123 RewriteRule ^$ /foo/bar? [L,R=301]
Или с помощью REQUEST_URI:
RewriteCond %{REQUEST_URI} =/?p=123 RewriteRule ^$ /foo/bar? [L,R=301]
Обратите внимание что модель RewriteCond начинается с = (знака равно) который включает лексикографическое сравнение вместо прогона регулярным выражением. Таким образом пустой запрос при подстановке (обозначенный знаком "?") будет удален.