要重定向的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¶meter1=bar
我创造的是:
RewriteRule ^foo\?([^-]+)$ index.php?view=foo&$1 [L]
但它无法正常工作 - 我被重定向到查看foo但未传递参数
任何想法?提前谢谢你
编辑:
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]
并且有效
答案 0 :(得分:4)
请记住,RewriteRule仅匹配REUQEST_URI
而没有查询字符串。
为此目的,你只需要QSA
标志:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^foo/?$ index.php?view=foo [L,QSA]
QSA - (查询字符串附加)用于附加现有查询字符串和新查询字符串。