htaccess重写规则:将第一个参数设置为可选

时间:2014-05-13 17:06:07

标签: regex apache .htaccess mod-rewrite

我正在尝试将第一个规则设置为可选,因此这两个网址都可以使用:

  • /用户名
  • /用户名/历史
  • /历史

用户名永远不会发生冲突。

RewriteRule ^([a-z]+)/((history|analysis|messages|photos)?)$ pages/dashboard.php?username=$1&page=$2 [L]

有了上述内容,我/username/history正在工作。无法想办法如何获得其他人。

编辑:以上代码段是尝试将这三行合并为一条的结果。

RewriteRule ^(history|analysis|messages|photos)?$ pages/dashboard.php?page=$1 [L]
RewriteRule ^([a-z]+)/(history|analysis|messages|photos)?$ pages/dashboard.php?username=$1&page=$2 [L]
RewriteRule ^([a-z]+)$ pages/dashboard.php?username=$1 [L]

1 个答案:

答案 0 :(得分:0)

您可以使用此规则:

RewriteRule ^(history|analysis|messages|photos)/?$ pages/dashboard.php?page=$1 [L,NC,QSA]

RewriteRule ^([a-z]+)(?:/(history|analysis|messages|photos))?/?$ pages/dashboard.php?username=$1&page=$2 [L,NC,QSA]
相关问题