Php 类似Facebook的子文件夹:如何创建?
我正在尝试创建一个类似facebook的页面。我的问题是:我希望页面上的URL不是www.sitename.com/profile.php?username=username,而是www.sitename.com/username 我知道要显示像后一个URL一样的URL,在名为Username的文件夹中会有一个索引页,但我不知道如何动态地这样做,以及如何将其显示为子文件夹Php 类似Facebook的子文件夹:如何创建?,php,subdirectory,Php,Subdirectory,我正在尝试创建一个类似facebook的页面。我的问题是:我希望页面上的URL不是www.sitename.com/profile.php?username=username,而是www.sitename.com/username 我知道要显示像后一个URL一样的URL,在名为Username的文件夹中会有一个索引页,但我不知道如何动态地这样做,以及如何将其显示为子文件夹 我使用php作为我的主要语言。您可以使用Apache的。只需在Apache配置中启用它,并将以下内容放入应用程序根目录中的.
我使用php作为我的主要语言。您可以使用Apache的。只需在Apache配置中启用它,并将以下内容放入应用程序根目录中的
.htaccess
:
RewriteEngine On
RewriteRule /(.*)$ /profile.php?username=$1
另外,还有一个关于友好URL的漂亮教程。for Apache具有实现您所需的功能。我相信其他主流web服务器也有类似的功能。您可以使用,或者(如果您使用IIS)
我使用htaccess。以下是我如何允许动态配置文件的示例:
RewriteEngine On
RewriteBase /
RewriteRule ^profile\/(.*)$ ./profile.php?profileId=$1 [L,NC,QSA]
RewriteBase/
表示/profile.php?profileId=$1
路径来自根目录。RegExp^profile\/(.*)$
将匹配类似于profile/1234
的内容,从而显示/profile.php?profileId=1234
希望有帮助。您需要使用
/
而不是/
,否则Apache将尝试加载profile/profile.php?..
作为文件,因为“profile”当前用作目录。RewriteBase会处理这个问题。由于htaccess位于/
中,因此/
如果来自/
而不是/profile/
,根据文档,RewriteBase仅适用于相对路径(它们前面没有/
或/
或/
)。/
特别询问它应该使用当前目录来查找文件,它是相对的。我一直都在使用它。我一直认为它是绝对的,因为有人告诉我,/
基本上被替换为当前目录的完整路径,即/
=>/path/to/directory/
。谢谢!这正是我要找的!