301 редирект в htaccess

htaccess редирект redirect

Как в .htaccess сделать 301 редирект с адреса вида http://www.site.ru/news.php?id=113 на адрес вида http://www.site.ru/news/113 ?

Примечание:
2 rojer:
Попробовал твой вариант. При обращении по адресу вида http://www.site.ru/news.php?id=113 дает 404-ю ошибку.

Примечание:
2 rojer:
Обращение http://www.site.ru/news/113 работает, обработчик для него существует. В .htaccess mod_rewrite включен и есть правила обработки, например такое RewriteRule (news)/([0-9]+)$ index.php?mod=news&id=$2 [L]

Примечание:
К сожалению доступа к RewriteLog нет.
Правила
RewriteEngine on
RewriteCond %{QUERY_STRING} ^id=(\d+)$
RewriteRule ^news\.php$ /news/%1? [redirect=permanent]
идут в самом начале, остальные дальше.
При запросе вида http://www.site.ru/news.php?id=X выдается 404-я вида: The requested URL /news.php was not found on this server.
Ответы:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=(\d+)$
RewriteRule ^news\.php$ /news/%1? [redirect=permanent]
Не совсем оно, но в качестве примера подойдет.
имхо, проще такое делать в скрипте.
если, конечно, аффтар не перепутал все, и ему надо наоборот.
нет, в скрипте такое делать не лучше.
> При обращении по адресу вида http://www.site.ru/news.php?id=113 дает 404-ю ошибку.
> В .htaccess mod_rewrite включен и есть правила обработки, например такое RewriteRule (news)/([0-9]+)$ index.php?mod=news&id=$2 [L]
> Правила идут в самом начале, остальные дальше.
> При запросе вида http://www.site.ru/news.php?id=X выдается 404-я вида: The requested URL /news.php was not found on this server.
разобрались. апач у woofer'а почему-то не понимает класса \d в регексах. проблема решилась заменой \d на [0-9].
итого:


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.