2013-05-30 36 views
1

htaccess文件重定向如下:国防部重写规则传递参数

pagename.com/foo - > pagename.com/index.php?view=foo

,它工作在htaccess的代码是

RewriteRule ^foo$ index.php?view=foo [L] 

但我也想使用参数。所以它看起来这样

pagename.com/foo?parameter1=bar - > pagename.com/index.php?view=foo &参数1 =酒吧

我HABE创建的:

RewriteRule ^foo\?([^-]+)$ index.php?view=foo&$1 [L] 

但它不能正常工作 - 我重定向查看富,但参数不通过

任何想法?谢谢你提前

编辑:

RewriteRule ^foo/?([^-]+)$ index.php?view=foo&$1 [L,QSA] 

RewriteRule ^foo/?$ index.php?view=foo [L,QSA] 

两者分开使用,并与

RewriteCond %{REQUEST_FILENAME} !-f 

无法得到它

编辑2:

有另外一个重写规则为同foo页面 - 刚刚将QSA添加到第一个,如下所示:

RewriteRule ^foo$ index.php?view=foo [L,QSA] 

和它的作品

回答

4

记住,重写规则只匹配REUQEST_URI没有查询字符串。

你只需要QSA标志用于此目的:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^foo/?$ index.php?view=foo [L,QSA] 

QSA - (查询字符串附加)用于与新追加现有的查询字符串。

+0

按照你的建议添加,它没有工作 - 我将在第二个 – andrewpo

+0

添加编辑问题发现它 - 获得另一个重定向到同一个foo之前,它是一个阻止解决方案 - 见编辑2 – andrewpo