.htaccess Перезапись URL-адреса для указанного c файла - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь настроить URL-адрес типа www.example.com/username для чего-то вроде www.example.com/profile.php?name=username

Я пробовал это в своем .htaccess

    RewriteEngine on
    RewriteRule ^user/(.*)$ profile.php?name=$1 [NC,B,QSA]

, но это заставляет его работать для всех страниц. Я хочу, чтобы это работало только тогда, когда URL-адрес похож на www.example.com/username, но он работает также для www.example.com/users.php

Если открыт файл users. php или любой другой. php, тогда правило перезаписи не должно быть применимо к нему.

Как это может быть достигнуто?

1 Ответ

0 голосов
/ 27 мая 2020

Вы можете добавить условие перезаписи в URI запроса, которое соответствует всему, что не заканчивается на. php

например: (не проверено)

RewriteEngine on
RewriteCond %{REQUEST_URI} !\.php$
RewriteRule ^user/(.*)$ profile.php?name=$1 [NC,B,QSA]

проверка, действительно ли URI файл был очень популярен среди фреймворков, но он работает медленнее, чем соответствие строки, заканчивающейся на. php, потому что каждый запрос apache должен проверять, существует ли файл на диске.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^user/(.*)$ profile.php?name=$1 [NC,B,QSA]
...