我刚刚开始玩.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
答案 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