使用查询字符串转到此处,无需去那里,.htaccess重定向

时间:2013-03-13 16:22:55

标签: .htaccess mod-rewrite

我制作了网站的静态图片,并通过重写规则链接html文件:

RewriteRule ^$ static/index.html [L]
RewriteRule ^stuff$ static/stuff.html [L]

等。我知道,这不是最聪明的方式,但它有效。 现在问题是:我想那个

domain.com/?format=feed&type=rss

再次由仍位于根目录中的cms的index.php处理。我的尝试喜欢

RewriteCond %{REQUEST_FILENAME} !feed=

未成功 - 请求始终仅附加在重定向的静态文件中。

我怎样才能实现cms确实处理了Feed请求?

我的背景是,虽然存在精心设计的缓存机制,但它们都没有像共享主机的静态文件那样具有相应的响应能力。提前谢谢!

编辑: 我来的时候最近似乎

RewriteCond %{QUERY_STRING} !^(.*&)?format=feed
RewriteRule ^(.*)$ static/%{REQUEST_URI}.html [L,QSA,R=301]

但是当指向静态版本时,这会导致斜杠过多......

1 个答案:

答案 0 :(得分:1)

您只需测试format=feed即可。无需进一步的背景

RewriteCond %{QUERY_STRING} !format=feed

或者您可以反过来执行此操作并明确重写为index.php

RewriteCond %{QUERY_STRING} format=feed
RewriteRule ^$ /index.php [L]