使用PHP自定义URL

时间:2011-06-30 08:16:48

标签: php .htaccess mod-rewrite

我有一个小问题要问。是否可以通过php或htaccess将类似miodominio.com/users.php?idu=x的网址更改为miodominio.com/username之类的内容?

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

5 个答案:

答案 0 :(得分:4)

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

首先通过index.php引导所有网址请求,然后在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 /',然后您可以使用它来提取用户的数据并将其提供给他们。

祝你好运,并谨防使用此方法进行网址注入。

答案 1 :(得分:1)

你需要使用apache的mod_rewrite。它可以将miodominio.com/username转换为miodominio.com/users.php?idu=x。有一些很好的指南,很容易找到谷歌。

答案 2 :(得分:0)

您可以尝试使用此mod_rewrite模式(将其添加到.htaccess):

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

答案 3 :(得分:0)

你必须在.htaccess文件中写一个干净的URL,如:

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

答案 4 :(得分:0)

将以下内容放入.htaccess

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

[NC]会使其不区分大小写,如果只接受小写用户名,则从最后删除[NC]。