Путь URL перенаправляет в один файл php - PullRequest
1 голос
/ 18 ноября 2011

Хотите узнать, можно ли получить разные URL-пути для перенаправления в один php-файл, который я могу извлечь из URL-адреса.

т.е. если у меня есть www.example.com/username илиwww.example.com/username2 или www.example.com/username3

Я хочу перенаправить его в файл username.php, который затем я могу получить по имени пользователя из URL и загрузить информацию из базы данных.

Если нет, у кого-нибудь есть идеи о том, как я могу сделать что-то подобное.Tumblr делает что-то подобное, так как вы можете просто ввести имя пользователя в URL, и он загружает их блог.

Ответы [ 3 ]

2 голосов
/ 18 ноября 2011

Да, конечно, это возможно благодаря перезаписи URL!Проверьте Переписать мод Apache .

Для вашей информации, правило переписывания, которое вы хотите, может выглядеть следующим образом:

RewriteEngine On
RewriteRule ^/username(.*) /username.php?user=username$1 [QSA,L]

Я почти уверен, что это будет работать.Просто активируйте mod_rewrite на вашем сервере.

0 голосов
/ 18 ноября 2011

Да, это называется шаблоном FrontController и обычно достигается с помощью правила перезаписи. Примером немного другого метода для Apache2 будет:

<VirtualHost *:80>
  ServerName quickstart.local
  DocumentRoot /path/to/quickstart/public

  SetEnv APPLICATION_ENV "development"

  <Directory /path/to/quickstart/public>
      DirectoryIndex index.php
      AllowOverride All
      Order allow,deny
      Allow from all
  </Directory>
</VirtualHost>

Это взято из Zend Framework Manual , где вы найдете практический пример Pattern FrontController . По сути, все запросы отправляются в один файл (в этом примере index.php) и обрабатываются оттуда, как правило, путем направления запроса на другой контроллер.

0 голосов
/ 18 ноября 2011

когда хочешь открыть www.example.com/page/username веб-сервер будет перенаправлен на www.example.com/index.php?username=username1 с этим вы можете дать страницу каждому пользователю

на самом деле это страницы типа

www.example.com/index.php?username=username1
www.example.com/index.php?username=username2
www.example.com/index.php?username=username3

с переписанным движком они могут быть доступны вот так.

www.example.com/page/username
www.example.com/page/username2
www.example.com/page/username3

.htaccess

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^page/(.*) /index.php?username=$1 [QSA,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...