使用htaccess和php创建动态子目录

2 php apache .htaccess subdirectory

用户每次在我的网站上注册时,我希望他们拥有自己的子目录及其注册的"用户名".每个用户子目录都将具有相同的"index.php"文件,该文件将执行某些操作.

例如:"/ users/username1 /"和"/ users/username2 /"

如果有人想要访问子目录,他们可以简单地访问:"www.example.com/users/username1/"或"www.example.com/users/username2/"

简单而混乱的解决方案是简单地为每个用户创建一个子目录,并在每个目录中放置相同的"index.php"文件.但对我来说,这只会占用我的服务器空间并使我的目录变大.

我想知道是否可以使用.htaccess完成所有这些操作?我可以创建一个"index.php"和一个".htaccess"文件并将它们放在我的"/ users /"目录中吗?我必须放在我的.htaccess文件中的实际代码是什么?

如果您有更好的方法,请告诉我.我使用Apache和PHP作为我的工作环境.

谢谢

Ser*_*gei 6

嗯,例如,你可以用一个像这样的htaccess来做这一切:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

它能做什么:

  • 打开重写引擎
  • 检查所请求的文件是否存在
  • 检查请求的目录是否存在
  • 如果不是,它会将请求重定向到您的主index.php

基本上这意味着如果您输入urdo,例如yourdomain.com/users/ivan/,您的请求将被重定向到:

index.php?url=/users/ivan
Run Code Online (Sandbox Code Playgroud)

然后你在index.php中$ _GET ['url']并将其拆分成碎片.

这只是一个例子,还有其他mod_rewrite方法来做到这一点.