我有以下.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文件没有工作?
答案 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]