假设我有网址http://example.com/user/me,其中我是用户名。当用户在地址栏中输入网址时,我想透露用户的详细信息。我不想要http://example.com/user.php?user=me
等网址任何帮助表示赞赏,致力于LAMP
答案 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