3

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

任何帮助表示赞赏,在 LAMP 上工作

4

3 回答 3

5

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

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

于 2009-04-22T09:28:56.447 回答
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 实现——但这不是必需的。

于 2009-04-22T09:32:20.933 回答
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
于 2009-04-22T10:21:17.647 回答