URL переписывают как профиль Instagram - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь переписать свои URL-адреса с помощью уникальных слагов, таких как Instagram или Facebook.

Пример: facebook.com/joe

Мои URL-адреса такие: website.com/user.php?username=joe

Я пробую это правило в .htaccess:

RewriteEngine On
RewriteRule ^([a-z]+)$ user.php?username=$1 [L]

Но это не работает, оно перенаправляет на /user.php.

Это работает, если я использую это правило:

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

Но результат равен website.com/u/joe, и я предпочитаю без u.

Есть идеи?

1 Ответ

1 голос
/ 16 апреля 2020

Добавьте это к вашему .htaccess в вашем веб-каталоге root /

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ user.php?username=$1 [NC,L]

.* в шаблоне ^(.*)$ соответствует /anything, а скобки помогают захватить что угодно часть как переменная $1, используемая в URL замещения как user.php?username=$1.

В случае, если вам нужно несколько параметров, вы можете просто добавить &%{QUERY_STRING} после $1 для разделения и добавить их в конец строки запроса. например: если вы передадите website.com/joe?age=31, результат будет website.com/user.php?username=joe&age=31.

Наконец, флаг NC просто делает правило не чувствительным к регистру, поэтому он соответствует /Joe или /JOE как хорошо.

...