【发布时间】:2015-11-12 21:53:48
【问题描述】:
我正在尝试使用 .htaccess RewriteRule 来美化一些 url,但是我遇到了一个我无法解决的问题。 我写了这个:
RewriteEngine On
RewriteRule ^(.*)/(foro|forum)$ code/forum/forum.php?id=$1
RewriteRule ^(.*)/(foro|forum)/(.*)$ code/forum/forum.php?id=$1&subf=$3
RewriteRule ^(.*)/(foro|forum)/(.*)/(.*)$ code/forum/forum.php?id=$1&subf=$3&post=$4
第一个 url 重写工作正常,结果显示 id 参数(即 localhost/web/user501/forum -> id=user501)。 第二个 (localhost/web/user501/forum/3 -> id=user501, subf=3) 也是如此。
但是当我尝试第三次 url 重写时,不知何故,输出 id 不是我期望的“user501”,而是“code/forum/forum.php”。 其他vars的输出正常(localhost/web/user501/forum/3/5 -> id=code/forum/forum.php, subf=3, post=5)。
我尝试将 URL 重写中的第一个 (.*) 更改为一个固定的单词……它起作用了,但不幸的是我需要它是一个多变的单词。
有人知道发生了什么吗?
【问题讨论】:
标签: regex apache .htaccess mod-rewrite url-rewriting