Подскажите с mod_rewrite

[Удален]
857

Нужно сделать некое подобие чпу - заменить урлы "site.ru/script.php?id=раздватри" на "site.ru/abc/раздватри".

Т.е. чтобы по урлу "site.ru/abc/раздватри" отрабатывал "site.ru/script.php?id=раздватри".

Как это грамотно реализовать через mod_rewrite?

А также сделать 301 редирект со страниц "site.ru/script.php?id=раздватри" на "site.ru/abc/раздватри"? (это уже через скрипт делается, надо полагать)

Никогда не сталкивался, поэтому обращаюсь за помощью.

C
На сайте с 24.06.2007
Offline
34
#1

первое

RewriteEngine On

Options +FollowSymlinks

RewriteRule ^script([A-Za-z0-9-]+) /([0-9]+)/?$ script.php?name=$1&page=$2 [L]

второе

RewriteEngine on

RewriteCond %{REMOTE_HOST} !^.+\.yourdomain\.ru$

RewriteRule ^(/~.+) http://www.yourdomain2.ru/$1 [R,L]

Жизнь в стиле SEO (http://www.seolivin.ru) Хостинг с человеческим лицом (http://ufa-host.ru) Ищу проекты на продвижение ()
Arthur
На сайте с 20.12.2007
Offline
3
#2

RewriteEngine on

RewriteRule ^abc/([^/\.]+)/?$ script.php?id=$1 [L]

G
На сайте с 01.10.2007
Offline
16
#4

Tutor, ну ЧПУ они потому так и называются, что понятны человеку :)

Ну и ещё в нагруженных проектах имеет смысл кэшировать всю страницу, и отдавать её через какой-нибудь легкий фронт-енд типа nginx, что намного проще сделать, когда структура сайта похожа на статическую /document/3080.html

А ваш последний урл нет смысла делать статическим - это фильтрация, с кучей меняющихся GET парамметров, в виде ЧПУ могла бы выглядеть так: /components_list/filter/?id=20...

ciber
На сайте с 04.01.2008
Offline
215
#5

лучше бы я сюда не заходил. тут даже букварь не читали.

p.s. ни чего личного.

T
На сайте с 28.10.2005
Offline
182
#6
genbit:
Tutor, ну ЧПУ они потому так и называются, что понятны человеку :)
Ну и ещё в нагруженных проектах имеет смысл кэшировать всю страницу, и отдавать её через какой-нибудь легкий фронт-енд типа nginx, что намного проще сделать, когда структура сайта похожа на статическую /document/3080.html
А ваш последний урл нет смысла делать статическим - это фильтрация, с кучей меняющихся GET парамметров, в виде ЧПУ могла бы выглядеть так: /components_list/filter/?id=20...

У меня нет страниц, все генериться из базы, пользователь сам настраивает что ему нада, чего он хочет видеть в какой последовательности, как сортировать и чего выбирать из базы. Так что кешировать нет никакой возможности.

А в ЧПУ я не верю. Кто в здравом уме будет его запоминать? 1% посетителей? Почти все приходят или по закладкам или по ссылкам или с поисковиков.

ИМХО

[Удален]
#7

Подскажите, как сделать чтобы урл http://site.ru/словорусскимибуквами переводился в http://site.ru/id=словорусскимибуквами?

По аналогии с вышеприведённым примером, попробовал:

RewriteEngine on

RewriteRule ^([а-я]+)/?$ script.php?id=$1 [L]

но не получается. замена а-я на ascii-коды даёт 500 ошибку. хелп...

[Удален]
#8

RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^(.+)/?$ script.php?id=$1 [L]

я бы так попробовал

[Удален]
#9

так он русские буквы не детектит. а это обязательное условие. или в .htaccess в регулярке русские не принимаются?

[Удален]
#10

честно не знаю, думаю что не детектит но могу вполне ошибаться :)

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