Суть такая:
Есть сайт на codeigniter. Файл index.php удален из внешних url, в .htaccess прописан внутренний редирект:
RewriteRule ^(.*)$ /index.php?/$1 [L]
В Google Webmaster обнаружены проиндексированные ссылки такого вида:
http://site.ru/index.php?/product/oki_c9655
Понятное дело, это дубли тех же страниц, но без "index.php?". Соответственно, необходимо в .htaccess настроить редирект с таких страниц на страницы без "index.php?".
Если бы в url присутствовал просто "index.php", то проблема решалась бы таким редиректом:
RewriteRule ^index.php/(.*)$ /$1 [R=302,L]
и он работает.
Однако, попытка настроить такой редирект:
RewriteRule ^index.php?/(.*)$ /$1 [R=302,L]
не приводит ни к чему.
Проблема, судя по всему, в том, что знак вопроса рассматривается как начало части url с параметрами, что в конкретном случае не так. Как прописать правило, что бы оно работало следующим образом:
http://site.ru/index.php?/product/oki_c9655 –> http://site.ru/product/oki_c9655
?
Спасибо.