使用mod_rewrite在URL中添加用户名?

时间:2013-03-28 16:14:30

标签: php .htaccess url mod-rewrite

我现在正在设置一个网站,每个用户都有自己的网页。

Example: www.example.com/user

但现在我想知道如何为每个用户设置不同的部分。

Example: www.example.com/user/photos

我该怎么做?

这是我用户页面的htaccess;

RewriteEngine On

RewriteOptions MaxRedirects=1

RewriteCond %{REQUEST_FILENAME} -f [NC,OR] 
RewriteCond %{REQUEST_FILENAME} -d [NC] 

RewriteRule .* - [L]
RewriteRule ^(.*)$ userpage.php?user=$1 [QSA,L]

2 个答案:

答案 0 :(得分:1)

理想情况下,请求被重写的页面是主控制器/调度程序。我使用的方法是

RewriteRule ^(.*)$ index.php?rt=$1 [L,QSA]

然后

$route = explode('/', $_GET['rt']);

在你的情况下会产生:

array( 'user' , 'photos' )

通过这种方式,您可以使用单个脚本来确定要加载的程序的哪个位,然后只需包含它。如果您决定在以后向网站添加不同的功能而不必完全重新排列代码,只需在控制器中添加另一部分即可。

答案 1 :(得分:0)

如果我理解你的问题你想要为每个用户提供不同的网址,比如

  www.example.com/user1/photos
  www.example.com/user2/photos

为此你可以使用这样的东西

 RewriteCond %{REQUEST_URI} ^/([^/]+)/(.*)$ 
 RewriteRule ^ userpage.php?user=%1&url=%2 [S=1,L]

 RewriteCond %{REQUEST_URI} ^/(.*)$ [NC]
 RewriteRule ^ userpage.php?user=%1 [S=1,L]