带有$ _GET的漂亮网址

时间:2013-05-09 18:19:30

标签: php url mod-rewrite get

我试图获得漂亮的网址,但我对htaccess一无所知。

试图得到像这样的东西 这个:

  

domain.com/?page=login
  domain.com/?page=user&uid=2

到:

  

domain.com/login/
  domain.com/user/2

我必须指定这样的一切吗?:

  

domain.com/Page?a=arg1&b=arg2&c=arg3
  domain.com/Page/arg1/arg2/arg3

还是“更有活力”?

2 个答案:

答案 0 :(得分:0)

我喜欢使用http://www.generateit.net/mod-rewrite/。当您使用该工具2到3次时,很容易弄清楚它是如何完成的。

您可以定义哪些参数采用“spot”

所以得到你的:

domain.com/?page=login
domain.com/?page=user&uid=2

到:

domain.com/login/
domain.com/user/2

您可以使用:

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)$ /?page=$1&uid=$2 [L]

您的“页面”问题看起来有点困难。

您必须为每个“页面”或文件添加重写规则。

至少我不知道该怎么做。

如果是文件夹,您可以通过为文件夹提供自己的.htaccess

来解决这个问题

编辑:

RewriteEngine On
RewriteRule ^Page/([^/]*)/([^/]*)/([^/]*)\.html$ /Page.php?a=$1&b=$2&c=$3 [L]

可能会工作。我在生成器

中的Page/下添加了prefix

答案 1 :(得分:0)

如果这是一个新项目,我建议使用Zend Framework等框架。它们内置的默认路由以您想要的方式接受URL。

例如,对用户ID为123的用户登录页面的请求可能如下所示: /用户/注册/ ID / 123

在这里阅读更多内容: http://framework.zend.com/manual/2.1/en/user-guide/routing-and-controllers.html

还有其他框架,例如CakeCode Ignitor可以做同样的事情。但是,我相信他们(和Zend)确实需要在apache上安装mod_rewrite。