.htaccess多次重写同一个网址

时间:2014-09-22 18:45:07

标签: php .htaccess mod-rewrite

我有以下.htaccess文件:

# Turn rewrite engine on
RewriteEngine on

# Rewrite url
RewriteRule ^dashboard/(.*)/(.*) /beheer/dashboard.php?m=$1&f=$2
RewriteRule ^dashboard/(.*)/(.*)/(.*) /beheer/dashboard.php?m=$1&f=$2&id=$3 [L]

当我尝试转到mydomain.com/beheer/dashboard/test/test时,我被重定向到mydomain.com/beheer/dashboard.php?m=test&f=test的正常网址(当我只使用第一次重写时,我得到404错误)。可能有趣的是,对于某些链接我还需要传递第三个参数。例如:mydomain.com/beheer/dashboard.php?m=user&f=delete&id=1。所以我的问题是为什么这个.htaccess文件没有工作?

1 个答案:

答案 0 :(得分:0)

在正则表达式中使用结束锚$

# Turn rewrite engine on
RewriteEngine on

# Rewrite url
RewriteRule ^dashboard/([^/]+)/([^/]+)/?$ /beheer/dashboard.php?m=$1&f=$2 [L,QSA]
RewriteRule ^dashboard/([^/]+)/([^/]+)/([^/]+)/?$ /beheer/dashboard.php?m=$1&f=$2&id=$3 [L,QSA]