#1 2010.09.19 14:40

Refresh
Участник
Зарегистрирован: 2010.09.19
Сообщений: 3
Карма: 0
Профиль

mod_rewrite

Добрый день.
Имеется директория /users/ Посредством GET'а туда передаются ID. Например, /users/?id=324
Необходимо в адресной строке браузера вывести /users/?id=324 как /users/324/

Для это вполне достаточно:

RewriteEngine On
RewriteRule ^users/([0-9]+)/?$ ?id=$1


Но при данном реврайте возникают ошибки, к примеру начинает пропускать точки и слеши:
/users/324....../ или /users/324/////////

Решение:

RewriteEngine On
RewriteCond %{REQUEST_URI} /users/[0-9]+$
RewriteRule ^(.*)$ /users/$1/ [R=301]
RewriteCond %{REQUEST_URI} /users/[0-9]+/$
RewriteRule ^users/([0-9]+)/$ ?id=$1 [L]


Геморрой, в первую очередь меня интересует твое мнение, как тебе такой подход?
Также, если не затруднит, возможно требуется легкая корректировка реврайта (переписать пути /users/ или добавить/убрать флаги), то есть как должен выглядеть реврайт выше в идеале.
Рабочая директория: /users/ именно в ней находится .htaccess

Благодарю.

Отредактировано Refresh (2010.09.19 14:40)

Неактивен

#2 2010.09.19 15:13

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: mod_rewrite

Странно, я почему-то не задумывался по этому поводу. Сходу решения на ум не приходит красивого.
Просто, как вариант вышенаписанного

Код:

1
2
3
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/users/[0-9]+/?$
RewriteRule ^/users/([0-9]+)/?$ ?id=$1

Неактивен

#3 2010.09.19 15:28

Refresh
Участник
Зарегистрирован: 2010.09.19
Сообщений: 3
Карма: 0
Профиль

Re: mod_rewrite

Gemorroj, меня всегда терзали сомнения, если .htaccess находится в директории /users/, нужно ли прописывать пути к этой директории в реврайте?

RewriteCond %{REQUEST_URI} ^/users/[0-9]+/?$
RewriteRule ^/users/([0-9]+)/?$ ?id=$1

Некоторые еще и указывают RewriteBase /

Неактивен

#4 2010.09.19 16:02

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: mod_rewrite

Ага, вот от RewriteBase и зависит какой путь указывать. по умолчанию он вроде бы ./. что значит текущую директорию

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.008 s