Nginx - 重写 URL 包含 amp/ 以从末尾删除 amp/
Nginx - Rewrite URL containing amp/ to remove amp/ from the end
上周我正在使用 wordpress 并安装了一个 AMP 插件。玩了一会儿之后,我决定将其删除,直到 Google 使 AMP 也能在非新闻网站上突出。
安装时,我的一些 AMP 页面在社交媒体上得到了共享,现在访问者访问我的网站是为了 AMP URLs。他们看到原始页面,但 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(/.*)$ last;
}
我也试过这个:
rewrite ^/amp/(.*)$ http://www.myserver.com/ last;
这些解决方案似乎将 /amp/ 从 URL 中移除,如果它位于中间某处,而不是末尾。当 amp 结束时,它拒绝重定向。
此外,如果有 GET 参数(用于跟踪或其他任何东西),我希望它们保留下来而不被重写。
谢谢!
您需要删除 URL 末尾的 amp/
序列。
rewrite ^(.*/)amp/$ permanent;
上周我正在使用 wordpress 并安装了一个 AMP 插件。玩了一会儿之后,我决定将其删除,直到 Google 使 AMP 也能在非新闻网站上突出。
安装时,我的一些 AMP 页面在社交媒体上得到了共享,现在访问者访问我的网站是为了 AMP URLs。他们看到原始页面,但 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(/.*)$ last;
}
我也试过这个:
rewrite ^/amp/(.*)$ http://www.myserver.com/ last;
这些解决方案似乎将 /amp/ 从 URL 中移除,如果它位于中间某处,而不是末尾。当 amp 结束时,它拒绝重定向。
此外,如果有 GET 参数(用于跟踪或其他任何东西),我希望它们保留下来而不被重写。
谢谢!
您需要删除 URL 末尾的 amp/
序列。
rewrite ^(.*/)amp/$ permanent;