想知道是否有可能获得不同的URL路径重定向到单个php文件,我可以从URL中提取名称。
即。如果我有www.example.com/username或www.example.com/username2或www.example.com/username3
我希望它重定向到username.php文件,然后我可以从URL获取用户名并从数据库加载信息。
如果没有,是否有人对我如何做类似的事情有任何想法。 tumblr做类似的事情你可以在网址中输入用户名并加载他们的博客。
答案 0 :(得分:2)
是的,当然可以归功于URL重写!查看Apache mod rewrite。
有关您的信息,您想要的重写规则可能如下所示:
RewriteEngine On
RewriteRule ^/username(.*) /username.php?user=username$1 [QSA,L]
我很确定这会奏效。只需激活服务器中的mod_rewrite即可。
答案 1 :(得分:0)
当你想要打开www.example.com/page/username
时
网络服务器将重定向到www.example.com/index.php?username=username1
你可以为每个用户提供一个页面
实际上它们就像
这样的页面www.example.com/index.php?username=username1
www.example.com/index.php?username=username2
www.example.com/index.php?username=username3
使用重写引擎,可以像这样访问它们。
www.example.com/page/username
www.example.com/page/username2
www.example.com/page/username3
的.htaccess
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^page/(.*) /index.php?username=$1 [QSA,L]
答案 2 :(得分:-1)
是的,这被称为FrontController模式,通常使用重写规则来实现。 Apache2略有不同的方法示例如下:
<VirtualHost *:80>
ServerName quickstart.local
DocumentRoot /path/to/quickstart/public
SetEnv APPLICATION_ENV "development"
<Directory /path/to/quickstart/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
这个来自Zend Framework Manual,您可以在其中找到FrontController Pattern的实际示例。基本上,所有请求都发送到一个文件(在此示例中为index.php
)并从那里处理,通常是将请求路由到另一个控制器。