我试图屏蔽看起来像这样的网址:
http://example.com/test-test-test-test/item.swf?id=122
...在传递GET参数时显示此URL的内容:
http://example.com/images/item.swf?id=122
这是因为item.swf
目录中实际上不存在test-test-test-test
。我目前正在使用它,但它不起作用:
RewriteRule ^test-test-test-test/item\.swf\?id=([0-9]+)$ images/item\.swf\?id=$1 [L]
此.htaccess文件位于我的根文件夹中。
答案 0 :(得分:1)
请改为尝试:
RewriteCond %{QUERY_STRING} id=([0-9]+)
RewriteRule ^test-test-test-test/item\.swf /images/item.swf?id=%1 [R,L]
答案 1 :(得分:0)
RewriteRule
正则表达式不在查询参数上,为此,您可以使用[QSA]
标志:
“当替换URI包含查询字符串时,RewriteRule的默认行为是丢弃现有的查询字符串,并将其替换为新生成的查询字符串。使用[QSA]标志会导致查询字符串为组合“
示例:
RewriteRule ^test-test-test-test/item\.swf$ images/item.swf [L,QSA]
希望它有所帮助。