2

Как сделать отдельную страничку для каждого пользователя на сайте? Например mysite.ru/vasiya? Раньше я делал типа: .../user.php?id=vasiya. Как сделать аля контакт?) это трюк с htmlaccess? не может же быть что для каждого пользователя отдельный файл.... заранее спасибо!

3
  • 2
    127.0.0.1/trol = 127.0.0.1/user.php?id=trol => RewriteRule ^([0-9a-zA-Z]+)$ user.php?id=$1 26 июн 2012 в 17:00
  • 3
    С помощью mod_rewrite происходит преобразование адресов запроса к серверу. Например все что стоит после id будет передаваться как параметр другому скрипту, при преобразовании id1234 в userInfo.php?id=1234 как в комментарии @илюшка овчинников
    – ReinRaus
    26 июн 2012 в 17:47
  • 1
    @илюшка овчинников, к слову, это называется ЧПУ (человекопонятный URL).
    – Nofate
    26 июн 2012 в 19:59

2 ответа 2

4

.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

index.php

 <?

 if(isset($_SERVER['REQUEST_URI'])) {

  if(preg_match('#id(\d+)#i',$_SERVER['REQUEST_URI'],$matches)) {

        print_r($matches);

  }

}
2

Про vk.com/id***: там не Apache с .htaccess, а nginx, и конфиг примерно так выглядит:

server {
    server_name vk.com;
    ...
    rewrite ^/id(\d+)$ /controllers/id.php?id=$1;
    rewrite ^/([a-zA-Z\.\-]+)$ /controllers/nickname.php?nickname=$1;
}

Подробнее про rewrite в nginx.

3
  • VK.COM использует Apache! Только он выступает в роли Back-End сервера. В роли же Front-End выступает, как вы правильно сказали, NGINX.
    – Free_man
    27 июн 2012 в 6:05
  • @Dexter: пруф? В заголовках Apache не замечен. Server nginx/1.2.1 X-Powered-By PHP/5.3.3-7+squeeze3
    – Sergiks
    27 июн 2012 в 8:54
  • а мне кажется, что не суть, что фактически использует ВК. Автор привел адреса лишь для примера, а сам он скорее всего только учиться веб-программированию, а значит наиболее вероятно он использует связку PHP+Apache.
    – ReinRaus
    2 июл 2012 в 10:10

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.