2010-05-12 44 views
0

我想知道如何能够将用户名直接附加到站点URL而不必将其放入查询中?直接添加用户名到URL PHP

www.myspace.com/micheal

,而不是

www.myspace.com?name=micheal

而不必为用户创建一个新的文件夹,以便当输入网址包括名称时,冲浪者将直接进入用户的个人资料。

Thanx

+0

thanx您快速反应,堆栈溢出永远!!!!! – 2010-05-13 08:57:02

回答

2

对于Apache web服务器.htaccess文件与下面的代码将做到这一点。

RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?name=$1 [QSA,L] 
+0

@Stanley请注意,它会带来任何URL输入,甚至'micheal/some/anything /',所以需要进一步的filetring – 2010-05-13 11:24:19

1

这被称为url重写,并且由Apache服务器上的mod_rewrite处理。

重写规则将传入的uri解析并重建为脚本需要运行的内容。

一个很简单的例子:

RewriteRule ^michael$ /?name=michael$ 

有很多关于谷歌,当你知道去哪里找。从这里开始:

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

3

如果你使用Apache,其中,使用PHP,你最有可能的是,考虑mod_rewrite。这可以让你做这样的事情,在发送到脚本之前,www.myspace.com/micheal将在内部翻译为www.myspace.com/?name=micheal

请查看http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html以获取有关如何使用它的文档。

+0

+1提供链接到2.2文档,而不是1.3 – Felix 2010-05-12 13:44:52

+0

@Felix它真的很重要吗? – 2010-05-12 13:53:57

+0

@Col。弹片是的。 – Felix 2010-05-12 15:21:58

1

大家都指出你想要URL重写。

如果您使用IIS而不是Apache,仍然有几个选项。

自由选择 - Ionics Isapi rewrite filter

商业选择 - Isapi_Rewrite

+0

对于IIS而言,而不是Apache – Tarka 2010-05-12 19:28:52