Не используйте .htaccessфайлы

Не используйте .htaccessфайлы

Я пытаюсь сделать для социальной платформы, такой как Instagram или Facebook, и я хочу показать пользователям имя пользователя, как это examplesite.com/usernamehere так в URL. Я исследовал, как это сделать, и узнал, что это делается с помощью кодов перезаписи htaccess. У меня есть код

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ user.php?url=$1 [QSA,L]

В целом это работает, но, например, когда я хочу войти на examplesite.com/login или страницу регистрации, rewriterules думает, что слово login или register является именем пользователя, и никогда не открывается. Папки должны быть открыты, а также папки css, scss, js, img и т. д. на моем сервере должны восприниматься как имя пользователя, поэтому, если кто-то пишет в URL слова examplesite.com/css, img или js и т. д., не следует открывать файлы css, img или js.

Извините за мой английский. Спасибо всем! <3

решение1

Ряд различных вещей:

Не используйте .htaccessфайлы

Существует множество примеров кода в .htaccessфайлах, которые затем копируются снова и снова.культ грузасистемные администраторы вместо этого следовало бы прочитать настоящее руководство.

От:https://httpd.apache.org/docs/2.4/howto/htaccess.html

В общем, вы должны использовать .htaccessфайлы только тогда, когда у вас нет доступа к основному файлу конфигурации сервера. Например, существует распространенное заблуждение, что аутентификация пользователя всегда должна выполняться в файлах .htaccess, и в последние годы,еще одно заблуждение, что директивы mod_rewriteдолженидите в .htaccessфайлы.Это просто не тот случай.
...
В случае директив RewriteRule, в .htaccessконтекстеЭти регулярные выражения необходимо перекомпилировать при каждом запросе к каталогу, тогда как в контексте конфигурации основного сервера они компилируются один раз и кэшируются.Кроме того, сами правила более сложны, поскольку необходимо обходить ограничения, связанные с контекстом каталога и mod_rewrite. Проконсультируйтесь сРуководство по переписыванию для более подробной информации по этому вопросу.

Второй:

Вы уже упомянули пару имен каталогов, которые следует исключить из сопоставления example.com/[user-alias].

Не забудьте также запретить людям намеренно выбирать эти имена каталогов (и другие) в качестве своих псевдонимов на вашей странице регистрации.

Последний

RewriteCondДирективы используются для ограничения типов запросов, которые будут подлежать следующему RewriteRule.

В вашей конфигурации на «простом» английском языке указано: не применять следующее, RewriteRuleесли существует файл или каталог с таким же именем, как компонент имени файла из запроса.

Вы просто можете добавить дополнительные условные операторы с помощью дополнительных RewriteCondстрок, например:

RewriteCond %{REQUEST_FILENAME} !"login"

следует исключитьexample.com/login

Связанный контент