Вопрос по поводу .htaccess! Подскажите.

Статус
В этой теме нельзя размещать новые ответы.

DUBECZ

Новичок
Вопрос таков, как в .htaccess записать чтобы при вводе такого URL:
My.ru/doc/1
В переменную, например, $_GET['page'] присваивается doc, а в $_GET['id'] присваивается 1 ?
А при простом вводе URL:
My.ru/login.html
В переменную $_GET['page'] присваивается login без .html
 

DUBECZ

Новичок
ОK, я перефразирую.
Есть строка в .htaccess:

RewriteRule ^(page)/([0-9+])/$ index.php?page=$2&id=$4 [L] Что не так?

По идее если я ввиду my.ru/page/1, то $_GET['page']=page, $_GET['id']=1
 

DUBECZ

Новичок
Вот так будет правильно или нет?

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

DUBECZ

Новичок
А как сделать чтобы это работало с и без слеша в конце URL
 

Beavis

Banned
Сделать так, чтобы если URL без слеша, он к нему добавлялся
Почитайте мануал, там всё написано
 

Beavis

Banned
А еще * в регулярном выражении означает "дофига или ничего"
ты наверное хотел посоветовать использовать "?", а не "*"
но лучше, когда одна страница имеет только один адрес, а все остальные варианты (например без слеша, или с www в начале) редиректят на него
 

workOnFood

Новичок
ты наверное хотел посоветовать использовать "?", а не "*"
Да ты прав изначально я думал именно о "?" потом меня отвлекли и я написал "*"

но лучше, когда одна страница имеет только один адрес, а все остальные варианты (например без слеша, или с www в начале) редиректят на него
Хм, чем это лучше нежели вариант когда все учтено в паттерне?
 

A1x

Новичок
не понимаю зачем мучиться с передачей параметров в $_GET через mod_rewrite если все что надо можно получит в скрипте из $_SERVER['REQUEST_URI']?
 

Beavis

Banned
Хм, чем это лучше нежели вариант когда все учтено в паттерне?
потому что это упрощает паттерн, делает логичным и единообразным структуру урла страницы, избавляет от СЕО-шных проблем

т.е. вместо того чтобы по разным адресам типа
http://site.ru/page/1
http://site.ru/page/1/
http://www.site.ru/page/1
http://www.site.ru/page/1/
открывалась одна и та же страница, я предлагаю сделать чтобы правильным был только один адрес, например второй, а все остальные редиректили на него
 

workOnFood

Новичок
Beavis

Я не совсем понимаю при чем тут доменное имя... разве RewriteRule не работает со строкой page/1 ?
Мне кажется запись вида

RewriteRule ^page/(\d+)/?$ page?id=$1

будет уместнее чем четыре редиректа.
 

Beavis

Banned
Beavis
Я не совсем понимаю при чем тут доменное имя...
для иллюстрации проблемы кучи разных урлов у одной страницы

будет уместнее чем четыре редиректа.
в данном случае только один редирект, с /page/1 на /page/1/, или наоборот
 

workOnFood

Новичок
для иллюстрации проблемы кучи разных урлов у одной страницы
А можно более правдоподобную иллюстрацию? Я не могу себе представить реально работающего кода в котором это может понадобиться.

в данном случае только один редирект, с /page/1 на /page/1/, или наоборот
Да, я имел ввиду четыре строки описания редиректов конечно, а не сами редиректы.
 

workOnFood

Новичок
строка тоже одна, если не рассматривать www
Согласен. Т.е. -

RewriteRule ^page/(\d+)/?$ http://example.ru/page/$1
RewriteRule ^page/(\d+)$ page?id=$1

вместо -

RewriteRule ^page/(\d+)/?$ page?id=$1

?

причем тут код? мы сейчас говорим не о php а о http.
Любое приложение это код в том или ином виде. Приведи пример урлов в случае с которыми было бы логично использовать редирект вместо одного паттерна.
 

Beavis

Banned
Согласен. Т.е. -
RewriteRule ^page/(\d+)/?$ http://example.ru/page/$1
RewriteRule ^page/(\d+)$ page?id=$1
ну суть правильная, но эти реврайты ещё надо вылизывать, хотя бы в первом убрать знак вопроса и указать код редиректа

Любое приложение это код в том или ином виде. Приведи пример урлов в случае с которыми было бы логично использовать редирект вместо одного паттерна.
http://phpclub.ru/talk/threads/Вопрос-по-поводу-htaccess-Подскажите.71355/#post-637183
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху