CodeIgniter - правильный редирект

sanu0074

Новичок
Если раньше страницы сайта выглядели в так: http://site.ru/script.php?id=99, а теперь будут выглядеть так: http://site.ru/script/99

Как написать правильный редирект, что бы при выдаче поисковиком старых ссылок, переход осуществлялся на новые?

Вот, есть кое-что:

RewriteEngine on
RewriteRule ^(.*)\/(.*)$ $1.php?id=$2 [L,QSA,R=301]


Но оно не работает правильно, неперенаправляет... Это потому что в .htaccess уже есть это сверху:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

</IfModule>


Как мне быть в этом случае??
 

С.

Продвинутый новичок
Делать перенаправление не в .htaccess, а в script.php
 

sanu0074

Новичок
Делать перенаправление не в .htaccess, а в script.php
Этот вариант неочень хорош..... придется создать скрипт а в нем уже header на нужный id..... просто таких скриптов несколько, хотелось бы через .htaccess написать....
плюс ко всему, нужно посылать 301 moved permanently, чтобы сказать поисковику что страница переехала - header('HTTP/1.1 301 Moved Permanently');
 

С.

Продвинутый новичок
Этот вариант неочень хорош..... придется создать скрипт а в нем уже header на нужный id..... просто таких скриптов несколько
Неужели аж штук пять наберется. Безумное количество!
плюс ко всему, нужно посылать 301 moved permanently, чтобы сказать поисковику что страница переехала
Что значит "плюс ко всему"? Эти несколько скриптов еще для чего-то будут созданы кроме как для отдачи 301?
 

sanu0074

Новичок
Неужели аж штук пять наберется. Безумное количество!

Что значит "плюс ко всему"? Эти несколько скриптов еще для чего-то будут созданы кроме как для отдачи 301?
просто нехочу создавать хлам в виде скриптов содержащих в себе три строки, это простое решение проблемы.
Я знаю что с помощью .htaccess можно решить эту проблему, просто нужно правильно написать регулярку! но я незнаю как....
 

С.

Продвинутый новичок
Так он и в .htaccess будте хламом, отрабатывающем на каждом голимом вызове (даже favicons.ico).
Хотя впрочем кому арбуз, а кому свиной хрящик.
 

Вурдалак

Продвинутый новичок
в index.php не сделаеш, если в строке адреса обращение идет к другому скрипту
Как это не сделаешь, если твое правило переадресует на index.php все, что не найдено? Я так понял, что ты перешел на фреймворк и можно удалять script.php и прочее.
 

sanu0074

Новичок
Как это не сделаешь, если твое правило переадресует на index.php все, что не найдено? Я так понял, что ты перешел на фреймворк и можно удалять script.php и прочее.
Так как это сделать, напрмер чтоб перенаправить страницы верхнего уровня (т.е. те кот тянули из бд контент в соответсвии с параметром GET['section']) можно перенаправить с помощью switch(); а вот с остальными, только вариант - создать несколько скриптов и вних прописать хедеры..... Есть другое решение???
 

Вурдалак

Продвинутый новичок
В обработчике 404 твоего мегафреймворка сделать в зависимости от REQUEST_URI или от чего там будет лучше сделать перенаправление.
 
Сверху