我正在使用.htaccess加载社交网络个人资料
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ /users/users.php?username=$1
但问题是任何人都可以注册一个与“admin”
相同的用户名有没有办法用.htaccess或php来阻止它?
答案 0 :(得分:1)
我找到了解决方案!
<?php
$dir = '/var/www';
$files = scandir($dir);
if (in_array("forum", $files)) {
echo "username Exists";
}
?>
答案 1 :(得分:0)
您可以使用否定前瞻断言((?!…)
)执行此操作:
RewriteRule ^(?!admin)([a-zA-Z0-9_-]+)$ /users/users.php?username=$1
但是,我建议在创建用户时执行验证,然后在允许访问任何文件之前验证用户是否存在于数据库中。更好的是,考虑重新设计您的系统,以便用户信息不会存储在目录结构中,而是存储在某个地方的数据库中。或者,如果您确实 在文件系统上存储用户文件,则可以确保每个用户都具有唯一的数字用户ID,并将其用作文件夹名称。