URL路径重定向到单个php文件

时间:2011-11-18 10:20:27

标签: php javascript http url

想知道是否有可能获得不同的URL路径重定向到单个php文件,我可以从URL中提取名称。

即。如果我有www.example.com/username或www.example.com/username2或www.example.com/username3

我希望它重定向到username.php文件,然后我可以从URL获取用户名并从数据库加载信息。

如果没有,是否有人对我如何做类似的事情有任何想法。 tumblr做类似的事情你可以在网址中输入用户名并加载他们的博客。

3 个答案:

答案 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)并从那里处理,通常是将请求路由到另一个控制器。