mor_rewrite работает наоборот

12
M
На сайте с 20.08.2007
Offline
7
1280

вот такая ситуация,

динамический адрес такой

http://localhost/index.php?link=catalog&action=show&id=74

и должны получаться ссылки вида

http://localhost/catalog/74.html

делаю

RewriteEngine On

RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?link=$1&action=show&id=$2 [R=301,L]

происходит следующее:

заходишь сюда http://localhost/index.php?link=catalog&action=show&id=74 ничо не происходит, а заходишь сюда http://localhost/catalog/74.html редиректит (сюда http://localhost/index.php?link=catalog&action=show&id=74)

получается, оно работает наоборот.

что я не так делаю ?)

mxp100
На сайте с 20.12.2006
Offline
49
#1

[R=301,L] убери из правила

M
На сайте с 19.12.2006
Offline
71
#2

Это зачем [R=301,L]?

под редиректом что подразумевается?

адресная строка меняется с красивой на обычную старую?

в print_r($_GET) что показывает?

D
На сайте с 14.01.2007
Offline
153
#3

почитайте ещё раз, как этот мод работает. он у вас всё правильно делает.

и уберите редирект. у вас страница никуда не переехала

M
На сайте с 20.08.2007
Offline
7
#4

угу. именно на старую и меняется.

убрала редирект.

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

M
На сайте с 19.12.2006
Offline
71
#5

Я тоже логику долго не мог понять, когда работать с ним начинал. Вы забудьте про то что у Вас есть

localhost/?var1=1&var2=2

вы просто набирайте сразу

localhost/var1/var2

а редирект отсюда никак не сделать localhost/?var1=1&var2=2, технически у Вас это и остается, только всем будет видно localhost/var1/var2

p.s.

вот думаю понятно объяснил или нет? :)

mxp100
На сайте с 20.12.2006
Offline
49
#6

короче про мод_реврайт написано не просто много, а ОЧЕНЬ много!!!

M
На сайте с 20.08.2007
Offline
7
#7
morti:


вот думаю понятно объяснил или нет? :)

объяснил понятно =)

но вот обратно же оно редиректило 😕 ... просто у меня cms выдает такие некрасивые адреса, да ещё и дубли делает (одной странице несколько разных адресов придумывает), вот и решила через mod_rewrite бороться с этим.

M
На сайте с 20.08.2007
Offline
7
#8

это понятно, что МНООООГО написано.

чем, кстати, К=301 не угодил ?

M
На сайте с 19.12.2006
Offline
71
#9

Мне вот лично редирект не угодил тем что я использую его командой вверху и один раз. А дальше и не задумывался куда ещё его можно засунуть. :)

А вообще надо в яше найти учебник для чайников и читать, перечитывать и в опеределнный момент спустится озарение (как в Симпсонах :)

R2
На сайте с 01.02.2007
Offline
28
#10
Meitenite:
чем, кстати, К=301 не угодил

Почему же "не угодил"?

"Компьютерная программа делает то, что вы сказали ей делать,

а не то, что бы вы хотели чтобы она делала..." - (Из Мэрфологии, кажется)

Meitenite:
но вот обратно же оно редиректило

И ничего не наоборот:

Вы сказали редиректить с localhost/catalog/74.html на localhost/index.php?link=cata...ion=show&id=74

она и редиректит - перенаправляет

Вам же (насколько я понял) надо чтобы по

localhost/catalog/74.html вызывалась (показывалась, подставлялась...) localhost/index.php?link=cata...ion=show&id=74

оставляя в адресной строке localhost/catalog/74.html

Для этого R=301 не нужно

12

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