Рассматривать несуществующий каталог в URL как код приглашения?

У меня есть ситуация, когда пользователям будет назначен случайно сгенерированный код приглашения для обмена. Я хотел бы сделать так, чтобы пользователи могли просто ввести этот код приглашения в URL в качестве каталога.

В настоящее время я обрабатываю код приглашения через GET:

example.com/signup.php?i=iNviTe

Я хотел бы упростить это так, чтобы example.com/iNviTe будет иметь тот же результат, что и приведенный выше URL, но будет полностью прозрачным для пользователя.

Это так близко, как я дошел до решения аспекта перезаписи URL:

RewriteEngine On
RewriteRule ^([^/]*)\.html$ /signup.php?I=$1 [L]

Как это возможно? На серверах, которые я использую, работают Nginx и Apache соответственно, а сайт написан на PHP.

-3

Решение

Это будет совместная работа веб-сервера и PHP. Веб-сервер должен знать, чтобы передавать несуществующие файлы / каталоги в скрипт PHP.

Если вы используете Apache, изучите .htaccess и mod_rewrite. Пример набора правил:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-_.]*)$ /invite.php?code=$1 [L]

куда $_GET['code'] будет установлен с кодом, указанным в URL. Так что посещение example.com/foobar будет молча перенаправить на example.com/invite.php?code=foobar

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector