Как сделать ссылку на моем сайте для многих пользователей, но указав на одну и ту же страницу шаблона? - PullRequest
0 голосов
/ 24 сентября 2019

Я создаю сайт, где люди пишут анонимные сообщения пользователям.У каждого пользователя должна быть «общедоступная» страница, на которой есть только его / ее изображение, имя и текстовая область, чтобы каждый мог писать им.

При регистрации каждый пользователь будет иметь ссылку, чтобы поделиться с людьми так,они идут туда и пишут свои секретные сообщения, например: mywebsite.com/john.php, а для другого пользователя mywebsite.com/alice.php.

Вопрос в том, что я хочу сделать только одну страницу в качестве шаблона, и когда мы запрашиваем страницу Джона,его изображение и имя будут запрошены из базы данных.Так как же это сделать, если каждому пользователю назначена отдельная ссылка?Я не хочу, чтобы люди просили - например - myWebsite.com/template.php?user=John, я хочу, чтобы они просили mywebsite.com/john.

Это вообще возможно?Любое предложение будет потрясающим, так как я новичок и растерян.

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

несколько способов сделать это

  1. Переписать мод (как ответ Коалы)
  2. Рамки для настройки вашего собственного маршрута (например, Laravel )
  3. $_SERVER['REQUEST_URI']
0 голосов
/ 24 сентября 2019

Если вы используете Apache для сервера, вы можете использовать mod_rewrite до , перенаправив все запросы в один и тот же файл index.php или любой шаблон URL, который вам нравится.Это довольно мощный.

Например, эта конфигурация перенаправит все дела "файл / каталог не найден" в файл index.php.Вам нужно либо поместить его в директиву конфигурации Apache VirtualHost, либо в .htaccess (если у вас установлено AllowOverride all).

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^ index.php [L]
</IfModule>

Подобные трюки вы можете делать на nginx сtry_files.

Затем вам нужно будет выполнить собственное обнаружение URL на вашем index.php, чтобы правильно отображать контент для этого конкретного URL.Вы можете попробовать библиотеки типа FastRoute .

...