Как делается ссылка, как эта www.facebook.com/Lukavyi? - PullRequest
0 голосов
/ 25 сентября 2011

Как сделать ссылку вроде www.facebook.com/Lukavyi?Должен ли каждый пользователь иметь отдельный php-файл, чтобы иметь такую ​​ссылку?Я знаю, что вы можете каким-то образом изменить URL-адрес с помощью Apache, но возвращается ли ссылка, когда пользователь нажимает на нее?

Ответы [ 2 ]

4 голосов
/ 25 сентября 2011

Это можно сделать с помощью механизма перезаписи URL-адреса Apache mod_rewrite.Вы можете указать шаблон URL и перенаправить все запросы на страницу или PHP-скрипт по своему вкусу.

Он работает путем создания файла .htaccess и установки там правил.Например:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^users/(.*)$ users.php?username=$1

Первые две строки гарантируют, что механизм перезаписи включен, а третья команда направляет все входящие запросы на адреса, подобные /users/MyUserName, для внутреннего перенаправления на users.php?username=MyUserName.Пользователь не увидит окончательный адрес, только «чистую» версию.

Если вы не хотите, чтобы часть users/ в URL-адресе и вместо этого хотите, чтобы yoursite.com/MyUserName работала вместо этого, у вас будетсоздать фронт-контроллер , который будет обрабатывать все входящие запросы.

0 голосов
/ 25 сентября 2011

Используя .htaccess и mod_rewrite , вы можете справиться с этим.

Например:

Вы хотите, чтобы у каждого пользователя был свой URL, например www.example.com/user/UserName но вы хотите, чтобы ваш сервер вызывал www.example.com/user.php?name=UserName, вы создаете .htaccess следующим образом:

RewriteEngine on
RewriteRule ^user/(.*)$ /user.php?name=$1 [L]

Если вы получили ошибку или она не работает, попробуйте добавить этот код поверх .htaccess:

Options +FollowSymLinks

Добавление [L] в ваш .htaccess предотвратит перенаправление вашего браузера на user.php?name=UserName и все равно покажет /user/Username, но используется /user.php?name=UserName. Использование [R] будет перенаправлять.

...