需要帮助RewriteRule - Apache

时间:2010-06-04 07:41:30

标签: regex apache mod-rewrite

这就是我想要做的事情:

http://www.mysite.com/      >    http://www.mysite.com/index.php
http://www.mysite.com/asd   >    http://www.mysite.com/index.php?page=$1

asd将是附加到index.php的$ page变量的页面的名称。

我当前的重写规则成功重定向请求的页面,但无法加载默认的index.php页面。

RewriteEngine On
RewriteRule ^([\w]*)$ /index.php?page=$1 [L]

我该如何解决这个问题? :/

2 个答案:

答案 0 :(得分:1)

您需要有一个仅与/:

匹配的规则
RewriteRule ^/$ /index.php [L]

然后你的另一个:

RewriteRule ^/([\w]+)$ /index.php?page=$1 [L]

答案 1 :(得分:1)

对于我的,我只是将整个路径传递到索引页面。

RewriteRule ^.*$ /index.php?page=$0 [L,QSA]

然后使用list()explode()来填充它。

list( $param1, $param2, $param3 ) = explode( "/", $_GET['page'] );

否则,您将需要两个规则。

或者使用相同的规则并且/ page上有一个空的?page =参数。