.htaccess重写规则 - 无法获取第二个参数

时间:2012-11-20 06:27:47

标签: .htaccess mod-rewrite

我刚刚开始玩.htaccess,以使我的网址看起来不错。

下面的第一个重写工作正常: example.com/user/100 调用 example.com/index.php?p=profile&user=100 就像它一样应该。

然而,第二个不按我想要的方式工作。出于某种原因,我无法获取$ 2参数。我想 example.com/discussion/1873/iehf8383 重定向到 example.com/index.php?p=discussion&id=1873&token=iehf8383

这是.htaccess:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^user/(\d+)*$ ./index.php?p=profile&user=$1
RewriteRule ^discussion/(\d+)/(\d+)*$ ./index.php?p=discussion&id=$1&token=$2

2 个答案:

答案 0 :(得分:1)

由于\d与数字匹配,因此您的示例与第二条规则不匹配。试试这个:

RewriteRule ^quiz/(\d+)/([\w\d]+) ./index.php?p=discussion&id=$1&token=$2

这将允许您的令牌包含任何字母数字字符,而不是仅限于数字。

答案 1 :(得分:0)

更改:

RewriteRule ^quiz/(\d+)/(\d+)*$ ./index.php?p=discussion&id=$1&token=$2

要:

RewriteRule ^quiz/(\d+)/([^/]+)$ index.php?p=discussion&id=$1&token=$2