2

我刚刚开始使用 .htaccess 以使我的 URL 看起来不错。

下面的第一个重写器工作正常: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
4

2 回答 2

1

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

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

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

于 2012-11-20T06:30:48.230 回答
0

改变 :

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

至:

RewriteRule ^quiz/(\d+)/([^/]+)$ index.php?p=discussion&id=$1&token=$2
于 2012-11-20T06:30:21.087 回答