2011-06-30 129 views
4

我有一个小问题要问。是否有可能通过php或htaccess将miodominio.com/users.php?idu=x这样的url更改为miodominio.com/username之类的内容?用PHP自定义网址

我希望它是Facebook风格...其中“用户名”是由idu = x选择的用户名。

+0

“接受”解决问题的答案是很好的形式。您可以点击您选择的答案旁边的“打勾”来完成此操作。 –

回答

4

有多种方法可以解决这个问题,但这里总是适合我的需求。

首先通过index.php指导您的所有URL请求,然后在PHP代码中解析请求。

1)使用.htaccess文件通过index.php指导所有的URL。你会发现one way here by the CodeIgniter frameworka more advanced explanation here。如果您对.htaccess不熟悉,我首先推荐使用CodeIgniter .htaccess指南。

2)其次,使用PHP中的$_SERVER变量来提取URL。可能在$ _SERVER ['REQUEST_URI']的帮助下,您会发现'/ username /',然后您可以使用它来提取用户的数据并将其提供给他们。

祝您好运,并谨防使用此方法的URL注入。

+0

非常感谢,它非常有用! –

1

你需要为此使用apache的mod_rewrite。它可以将miodominio.com/username翻译为miodominio.com/users.php?idu=x。有一些很好的指南可以很容易地找到Google。

0

你可以尝试使用这个模式的mod_rewrite(将其添加到的.htaccess):

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_-]+)$ users.php?idu=$1 
RewriteRule ^([a-zA-Z0-9_-]+)/$ users.php?idu=$1 
0

你有喜欢你的.htaccess文件写一个干净的URL:

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9]+)/$ users.php?idu=$1 
0

认沽以下内容在您的.htaccess中:

RewriteEngine on 
RewriteRule ^([a-z0-9_-]+)/?$ /users.php?idu=$1 [NC] 

如果您只接受小写字母,[NC]会使其不区分大小写rname,从最后删除[NC]。