使用.htaccess寻找有关2层干净URL的帮助

时间:2011-07-22 14:48:14

标签: .htaccess url rest

我正在使用网址达到

的两个级别的网站

我的目标是拥有像这样的干净网址......

http://domain.com/username/dosomething

我丑陋的网址目前看起来像这样......

http://domain.com/index.php?page=username&command=dosomething

我的尝试就是这个

RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1&command=$2
RewriteRule ^([a-zA-Z0-9]+)/$1/$2 index.php?page=$1&command=$2

2 个答案:

答案 0 :(得分:0)

您在第一部分中没有正确使用您的反向引用。反向引用是带括号的表达式,然后将填充到$ 1,$ 2等。在规则的第二部分。 e.g:

RewriteRule ^([^/]+)/([^/]+)$ /index.php?page=$1&command=$2

这些带括号的表达式匹配一个或多个非/字符,并分别填入$ 1和$ 2。

答案 1 :(得分:0)

您的引用只是引用您的整个网址,所以您要告诉它的是 index.php?page = {完整网址}& command = {null}

您需要设置URL并仅在变量页面和命令周围使用括号。所以 ^ domain.com /([用户名] +)/(DoSomething的)

然后重写:

http://domain.com/index.php?page= $ 1和;命令= $ 16

如果您的页面和命令变量分别是username和dosomething