IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   MOD REWRITE: ПОМОГИТЕ! (https://www.imho.ws/showthread.php?t=69403)

Psionic Vision 26.09.2004 17:40

MOD REWRITE: ПОМОГИТЕ!
 
Как сделать следующее в .htaccess:

чтобы запросы типа
www.domain.ru/users/USERNAME
и
USERNAME.domain.ru

вели на страницу

www.domain.ru/user.php?user=USERNAME

?

RaZEr 26.09.2004 19:08

Сто раз уже обсуждали. Юзай поиск.

Psionic Vision 26.09.2004 19:29

RaZEr
Большое спасибо за толковое объяснение! :beer: :beer: :beer:

А поиск я юзал, вот что нашел:
http://imho.ws/showthread.php?t=6770...ht=mod_rewrite

Но, в случае русского ника это не работает :(
Т.е.
http://domain.ru/users/юзер
Не работает...

RaZEr 26.09.2004 19:43

Цитата:

Но, в случае русского ника это не работает
И не будет. Можно только латинские буквы, цифры и некоторые символы. Остальное должно кодироваться. Подробнее это описано в RFC-1738.

PS: "Большое спасибо за толковое объяснение!" - пример решения твоей задачи есть даже на apache.org ...

Psionic Vision 26.09.2004 20:21

RaZEr
Значит, организовать перенаправление в случае русских символов на htacess нельзя... А с помощью php? Т.е. - в физически создать папку users?

Psionic Vision 30.09.2004 03:43

Тишина...
На PHP скрипт передать русское значение тоже нельзя?

Sheryld 30.09.2004 11:18

можно, но не нужно.

зачем усложнять себе жизнь? нужно будет следить за файловой системой, за php, за базой и т.д. везде нужно будет корректно отображать и писать кирилицу.

смысл?

названия директорий всегда были на английском, так удобнее.

Psionic Vision 01.10.2004 05:30

Sheryld
Дело в том, что это не названия директорий, а ники пользователей. Поэтому, хотелось бы чтоб их страница была доступна по http://server.ru/users/НИК либо http://server.ru/users/?НИК

Sheryld 01.10.2004 12:00

э нет. обычно делают так:

login(латиница) - это и есть название директории, а ник можно хранить отдельно, также как и ФИО и т.д., т.е. это реквизиты.

если лень, то можно разрешить делать ники состоящие только из символов: [0-9_a-zA-Z] .

RaZEr 01.10.2004 12:26

Можно слегка расширить символами "-" и "." :)

Ale 01.10.2004 18:52

Если так до позарезу надо - можно кодировать ник в транслит. index.php в папке http://server.ru/users
PHP код:

<?

$usersURL = "http://server.ru/users/";
$userName = $_SERVER['QUERY_STRING'];

function ruEncode ($ruName) {
 static $enc = array(
"а"=>"a",
"б"=>"b",
"в"=>"v",
"г"=>"g",
"д"=>"d",
"е"=>"e",
"ё"=>"e",
"ж"=>"j",
"з"=>"z",
"и"=>"i",
"й"=>"i",
"к"=>"k",
"л"=>"l",
"м"=>"m",
"н"=>"n",
"о"=>"o",
"п"=>"p",
"р"=>"r",
"с"=>"s",
"т"=>"t",
"у"=>"y",
"ф"=>"f",
"х"=>"h",
"ц"=>"c",
"ч"=>"ch",
"ш"=>"sh",
"щ"=>"sh",
"Ъ"=>"'",
"ъ"=>"'",
"ы"=>"y",
"Ь"=>"'",
"ь"=>"'",
"э"=>"e",
"ю"=>"u",
"я"=>"ia"
 );
 return strtr(strtolower($ruName),$enc);
}

if ($userName != "") {header('Location: '.$usersURL.ruEncode($userName));}
else {echo "Ты кто?";}

?>

Запрос типа http://server.ru/users/?НИК делает простой редирект на папку nik. Но пользование кириллицы таки создаст вам лишние проблемы, оно действительно того стоит?


Часовой пояс GMT +4, время: 03:33.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.