URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 4345
[ Назад ]

Исходное сообщение
"Нужна помощь по mod_ReWrite + php уже отчаялся сам разобраться"

Отправлено Денис , 08-Сен-06 13:28 
Проблема такова, есть сайт где регистрируется человек и на него заводится профиль и ему соответственно присваеваится какой то id.
Адрес URL к профилю , будет примерно такой www.moi-site.ru/index.php?action=userprofile&user_id=N, где N - 1,2,3,4,5 ... id - пользователя.


Собственно сам вопрос? хочу сделать доступ к профилю пользователя с ЧПУ, что бы был красивый уникальный URL к профилю
т.е. сопоставить
www.moi-site.ru/index.php?action=userprofile&user_id=1  -   www.moi-site.ru/petya
www.moi-site.ru/index.php?action=userprofile&user_id=2  -   www.moi-site.ru/vasya
www.moi-site.ru/index.php?action=userprofile&user_id=3  -   www.moi-site.ru/kolyz

т.е. когда набираем www.moi-site.ru/petya происходит редирект на www.moi-site.ru/index.php?action=userprofile&user_id=1, но так чтобы в браузере по прежнему отображалось www.moi-site.ru/petya, т.е. редирект был какбы завуалирован

Количество пользователей будет довольно много поэтому возможно ли сделать так чтобы данные по сопоставлению адресов хранились в БД, а не в .htaccess, но и эти данный брались скриптом находящемся в .htaccess после чего делался бы редирект.


Содержание

Сообщения в этом обсуждении
"Нужна помощь по mod_ReWrite + php уже отчаялся сам разобрать..."
Отправлено openwork , 15-Сен-06 09:11 
то как ты хочешь сделать по моему только через
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#Rewrit... (на тему External Rewriting Program) возможно (точнее можно и обычным map но надо будет после каждого нового пользователя генерить dbm заново), но если
сделать соответвие

www.moi-site.ru/index.php?action=userprofile&user_name=petya  -   www.moi-site.ru/petya

то можно без внешних map, имена ж все равно уникальны.


>Проблема такова, есть сайт где регистрируется человек и на него заводится профиль
>и ему соответственно присваеваится какой то id.
>Адрес URL к профилю , будет примерно такой www.moi-site.ru/index.php?action=userprofile&user_id=N, где N -
>1,2,3,4,5 ... id - пользователя.
>
>
>Собственно сам вопрос? хочу сделать доступ к профилю пользователя с ЧПУ, что
>бы был красивый уникальный URL к профилю
>т.е. сопоставить
>www.moi-site.ru/index.php?action=userprofile&user_id=1  -   www.moi-site.ru/petya
>www.moi-site.ru/index.php?action=userprofile&user_id=2  -   www.moi-site.ru/vasya
>www.moi-site.ru/index.php?action=userprofile&user_id=3  -   www.moi-site.ru/kolyz
>
>т.е. когда набираем www.moi-site.ru/petya происходит редирект на www.moi-site.ru/index.php?action=userprofile&user_id=1, но так чтобы в
>браузере по прежнему отображалось www.moi-site.ru/petya, т.е. редирект был какбы завуалирован
>
>Количество пользователей будет довольно много поэтому возможно ли сделать так чтобы данные
>по сопоставлению адресов хранились в БД, а не в .htaccess, но
>и эти данный брались скриптом находящемся в .htaccess после чего делался
>бы редирект.



"Нужна помощь по mod_ReWrite + php уже отчаялся сам разобрать..."
Отправлено proxyd , 15-Сен-06 11:56 
Ответ может быть не потеме но как мне кажется болле актуален.
Используем .htaccess

# Перенаправляем все запросы на конкретный скрипт
Action throw /index.php
<FilesMatch "^([^.]+)$">
ForceType throw
</FilesMatch>

Потом парсим этот запрос и получая переменные. Пусть к примеру первая переменная будет именем пользователя. Ищем его в базе данных и выдаем нужную страницу. Помоему это более простое рещение чем писать правила для mod_rewrite


"Нужна помощь по mod_ReWrite + php уже отчаялся сам разобрать..."
Отправлено sergei_vasilyev , 15-Сен-06 12:17 
Поменяй user_id на user_name и задача упростится в разы.

А что такое "пользователь с ЧПУ"? "пользователь с числово-программным управлением"?