Nginx -重写包含amp/的URL以从末尾删除amp/

fhity93d  于 2023-05-28  发布在  Nginx
关注(0)|答案(2)|浏览(154)

我正在使用WordPress,上周安装了AMP插件。在玩了一会儿之后,我决定删除它,直到谷歌让AMP在非新闻网站上也很突出。
在它安装的时候,我的一些AMP页面在社交媒体上被分享,现在访问者来到我的网站是为了AMP URL。他们会看到原始页面,但URL会保留,并在Google Analytics中显示为与非AMP版本不同的单独页面。
我认为他们也直接攻击我的服务器而不是缓存,这给我的服务器带来了沉重的负担。
我的AMP URL如下所示:
www.mysite.com/category/this-is-my-post/amp/
我不太精通nginx重写,也不太理解语法。
我如何让这个示例URL只是:
www.mysite.com/category/this-is-my-post/
这是我目前为止的nginx重写代码,它根本没有做任何事情。我做错了什么?

location /amp {
    rewrite ^/amp(/.*)$ $1 last;
}

我还试了这个

rewrite ^/amp/(.*)$ http://www.myserver.com/$1 last;

这些解决方案似乎将/amp/从URL中删除,如果它在中间的某个地方,而不是在末尾。当放大器在最后,它拒绝被重定向。
另外,如果有GET参数(用于跟踪或其他),我希望它们保持不变,不要重写。
谢谢你!

dffbzjpn

dffbzjpn1#

您需要从URL的末尾删除amp/序列。

rewrite ^(.*/)amp/$ $1 permanent;
epfja78i

epfja78i2#

对于所有想要从/?amp重定向的用户,以下是解决方案:

if ($request_uri ~ ^/(.*)/\?amp$) {
    return 301 https://yourWebsite.com/$1;
}

相关问题