Nginx / Wordpress - 如何编写:如果URL有查询字符串(?),请不要404

时间:2013-09-25 13:56:11

标签: wordpress nginx rewrite http-status-code-404 query-string

好的,所以我的网站在Nginx / Wordpress上运行

如果我导航到: http://www.website.com/page-one/ - 页面有效,那很好。

如果我导航至: http://www.website.com/page-one?mm_campaign=ew328r9283rj293rj239

仅供参考: 此错误是由引起的,网址末尾没有尾部斜杠/

我收到404错误并被重定向到主页,因为它认为该页面不存在。

所以,我知道主页的404是因为:

            error_page 404 @foobar;

    location @foobar {
            rewrite  .*  / permanent;
            }

如果我把它拿出来,那么我得到一个通用的404 Nginx错误页面,我绝对不想要。

我需要能够使用带有查询字符串的URL来跟踪某些事情。如果URL有查询字符串,我基本上不需要404。我需要以某种方式写,如果URL有查询字符串,请不要404,在查询字符串启动之前转到URL ...但保留查询字符串以便我可以跟踪您...

我只是不知道该怎么写。我甚至不确定我是用简单的英语写的。叹息。

请帮忙!

1 个答案:

答案 0 :(得分:0)

Wordpress永久链接会在网址上强制执行/

因此,规范网址为http://www.website.com/page-one/

WordPress会自动301将http://www.website.com/page-one重定向到http://www.website.com/page-one/

您的查询字符串未附加到规范网址,它会附加到重定向的网址,这会使WordPress感到困惑,并使其成为404.

如果您将http://www.website.com/page-one?mm_campaign=ew328r9283rj293rj239更改为http://www.website.com/page-one/?mm_campaign=ew328r9283rj293rj239,则应该有效。