.htaccess 避免AMP页面URL上的链重定向

iqjalb3h  于 2023-10-23  发布在  其他
关注(0)|答案(1)|浏览(106)

我正在寻找一个链重定向问题的帮助,请。
期望行为:example.com/foo?amp重定向到example.com/bar
当前行为:example.com/foo?amp重定向到example.com/foo,然后重定向到example.com/bar
这是一个WordPress网站。Htaccess有以下规则,这似乎并没有解决链重定向:

RewriteCond %{QUERY_STRING} amp
RewriteRule ^/foo$ /bar [L,R=301]

我的htaccess功夫很弱,所以我完全期待我已经做了一个烂摊子!
任何帮助赞赏:)

piztneat

piztneat1#

你只是忽略了一个小细节,让事情运转起来:

RewriteEngine on
RewriteCond %{QUERY_STRING} amp
RewriteRule ^foo$ /bar [L,R=301]

当在分布式配置文件(“.htaccess”)中实现时,重写规则中的模式与URL的 relative 路径(foo,而不是/foo)匹配。
阅读您正在使用的工具的文档以了解这些细节确实是有意义的。作为典型的开源软件,Apache http服务器及其模块的文档质量非常好,并且带有很好的示例。您想从这里开始:http://httpd.apache.org/docs/current/howto/htaccess.htmlhttps://httpd.apache.org/docs/current/mod/mod_rewrite.html
我们可以稍微优化一下上面的规则:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^amp$
RewriteRule ^/?foo/?$ /bar [R=301,END]

而且你应该检查一下是否可以在实际的http服务器的主机配置中实现这样的规则,而不是使用分布式配置文件。。

相关问题