Перенаправление запросов в 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 начинается с = (знака равно) который включает лексикографическое сравнение вместо прогона регулярным выражением. Таким образом пустой запрос при подстановке (обозначенный знаком "?") будет удален.

Добавить комментарий