如何在不创建目录的情况下处理URL

时间:2011-01-24 06:05:12

标签: php apache mod-rewrite

我的域名结构为domain.com/username(就像在twitter / facebook等中一样)。

我的知识是,我要使用用户名创建一个目录,并将文件放在其中以便从该URL进行查看。

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

2 个答案:

答案 0 :(得分:2)

mod_rewrite的

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

基本上,您的“真实”网址看起来像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时,我会看到我的名字,就像我应该的那样。

答案 1 :(得分: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']以查看网址,选择用户名并显示相应的内容。

相关问题