我如何做可读网址?

时间:2009-04-22 09:26:24

标签: php apache mod-rewrite lamp

假设我有网址http://example.com/user/me,其中我是用户名。当用户在地址栏中输入网址时,我想透露用户的详细信息。我不想要http://example.com/user.php?user=me

等网址

任何帮助表示赞赏,致力于LAMP

3 个答案:

答案 0 :(得分:5)

这样做的一种方法是使用名为mod_rewrite apache模块。然后,您可以重写/user/([a-z]+)的网址,指向/user.php?user=$1

搜索mod_rewrite的文档以获取详细信息。

答案 1 :(得分:4)

最简单的方法是(在.htaccess中,在您的服务器配置中或在您的虚拟主机配置中):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

这会将您与文件,目录或符号链接不匹配的所有请求转发到index.php。在那里,您可以检查请求URI以确定要执行的操作。实际上,您需要某种调度程序知道如何解构URL以确定应采取的操作。实际上,这可能会导致一些MVC实现 - 但这不是必需的。

答案 2 :(得分:0)

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?u=$1