Нужна помощь с .htaccess

SL
На сайте с 21.08.2007
Offline
59
412

Нужно старый адрес страничек перенести на новый адрес.

т.е. был site.ru/index.php?id=25, теперь по этому адресу ничего нет, она находится по адресу site.ru/new-page.html

Пробовал писать RedirectPermanent /index.php?id=25 http://site.ru/new-page.html - не работает.

Но, если включить на сайте ЧПУ, то RedirectPermanent /25.html http://site.ru/new-page.html - работает.

В чем может быть причина? Нужно заменить именно index.php?id=25.

Вот, что в файле .htaccess:

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

rewritecond %{http_host} ^site.ru [nc]

rewriterule ^(.*)$ http://www.site.ru/$1 [r=301,nc]

Redirect 301 /index.php?id=25 http://www.site.ru/new-page.html

Заранее спасибо всем откликнувшимся!

Inoteol
На сайте с 19.03.2009
Offline
60
#1

ТС, такие задачи решаются ни mоdrewrite'ом. Добавьте в начале index.php след. строку:

if($_GET['id']=="25")

{
header('Location: http://site.ru/new-page.html'); exit;
}
SL
На сайте с 21.08.2007
Offline
59
#2

Inoteol, а если таких страниц 20?

ewg777
На сайте с 04.06.2007
Offline
225
#3
Stan_Ly:
Inoteol, а если таких страниц 20?

То создается массив с возможными значениями и проверяется наличие этого значения в массиве.

M
На сайте с 17.04.2008
Offline
88
MBo
#4


RewriteCond %{QUERY_STRING} id=25$
RewriteRule ^/?index.php$ /new-page.html? [R=301,L]
SL
На сайте с 21.08.2007
Offline
59
#5

MBo, Работает! Спасибо огромное!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий