2011-01-24 49 views
0

我的域名结构为domain.com/username(就像在Twitter/Facebook等)。如何在不创建目录的情况下处理URL

我的知识是,我必须创建一个用户名的目录,并将其中的文件从该URL中查看。

是否有更好处理URL没有为每个用户创建的目录,只是检索URL,并找出哪些用户的页面是&从数据库中只从主域加载用户数据的方式(即domain.com索引页面)??

回答

2

mod_rewrite的

http://www.workingwith.me.uk/articles/scripting/mod_rewrite

基本上,你的“真实”的URL看起来像domain.com/profile.php?name=Andrew,它会显示与该名用户的所有信息。然后,您可以使用mod_rewrite并使domain.com/andrew成为domain.com/profile.php?name=Andrew的“快捷方式”。

刚刚进行了测试,它工作得很好:

profile.php -

<?php 

echo '<h1>' . ucwords($_GET['name']) . '</h1>'; 

?> 

的.htaccess -

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/\.]+)/?$ profile.php?name=$1 [L] 

当我访问http://localhost/andrew,我看到我的名字,就像我应该。

+0

更新.htaccess,所以它不会尝试重写重要的东西。 – Andrew 2011-01-24 06:28:22

1

是的,通过将所有不是真实文件的请求重写到显示请求的用户数据的PHP脚本。把这个在您的.htaccess文件或httpd.conf中使用Apache的mod_rewrite:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /username.php [L] 

然后username.php可以看看$_SERVER['REQUEST_URI']看到该网址,挑选出用户名,并显示相应的内容。

相关问题