2013-06-27 64 views
0

我放在/dashboard/.htaccess这个重写规则[仪表板实际上是一个文件夹]:的.htaccess不工作

RewriteRule ^([^/]*)$ index.php?mode=$1 [L] 

我的结构的index.php模式=支持? ,虽然,$ _ SERVER [“QUERY_STRING”]输出这样的:

mode=index.php 

Example: site.com/dashboard/index.php?mode=support should be site.com/dashboard/support 

所以,我怎样才能让它在解析参数值的方式,而不是文件本身。

+0

据我所知.htaccess应该在根文件夹 – Ani

+0

@Ani .htaccess可以在任何文件夹 – exussum

回答

0

您的规则匹配任何以不斜线开始,犯规包含斜杠的任何地方,当你的实际路径是

/dashboard/support 

得到你真正想要的文件夹,你需要在底座上有这样

RewriteBase /dashboard/ 

如果放在上面的规则,那么你的重定向应该没问题

+0

我把这放在规则上面,结果是一样的。我使用了generateit.net/mod-rewrite/来从site.com/dashboard/index.php?mode=news获取重写规则到site.com/dashboard/news,但它仍然具有相同的效果。查询字符串$ 1仍然将'index.php'作为值。 – Eduard

1

设法解决它,而这样做对正则表达式进行更多的研究。

RewriteRule ^([a-z]+)$ index.php?mode=$1 [L,QSA] 

这个问题解决了我的问题,首选加上代替星号,因为它告诉引擎重复零次或多次。 (当我在index.php,查询字符串是空的根据需要)