我有一个来自旧Joomla安装的RSS feed example.com/?format=feed&type=rss
。 该站点现在使用Jekyll构build,并使用新的URL example.com/rss.xml
作为RSS提要。
重写规则不适用于我,因为URL以“?”开头。 我有它的工作与if指令,但要避免使用if 。
这里是我想用重写或redirectreplace的工作if指令:
if ($args ~ "type=rss") { rewrite ^ https://example.com/rss.xml? permanent; }
可以以“?”开头的URL指令 被重写还是redirect?
alexyten是对的。 在这种情况下,没有其他的方法来处理这个问题,因为你试图匹配的实际上并不是位置的一部分,而是一个GET参数。 而且,正如alexeyten所build议的那样,我将使用if ($arg_argname = "exact string")
。 正则expression式既有性能开销,又有不正确的写入,会导致不明原因的redirect和重写。
例如,如果要匹配format
参数具有值feed
的事实,则需要执行如下操作: if ($arg_format = "feed")
。