我有一些页面在Google搜索控制台上显示为断开的链接,其中一个是...
https://stackblitz.com/edit/angular-file-upload-preview-ptgq2f
...存在的URL是... https://evolvefitness.co.uk/personal-trainer-london/ ...所以我将此重定向添加到了我的htaccess文件中...
RewriteRule ^personal-trainer-london/? https://evolvefitness.co.uk/locations/personal-trainer-london/ [R=301,L]
...效果很好,但是当我访问包含重定向URL的第一部分的页面时,该页面也被重定向了...
https://evolvefitness.co.uk/locations/personal-trainer-london/
我现在已关闭所有重定向,但是如何告诉重定向仅在确切的URL上发生?结束时与问号有关吗?我看过一些文档,但完全迷路了
这些也会在其中发挥作用吗?
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} ^evolvefitness.co.uk
谢谢
答案 0 :(得分:1)
我想这就是您要寻找的:
RewriteRule ^/?personal-trainer-london/?$ https://evolvefitness.co.uk/locations/personal-trainer-london/ [R=301,L]
匹配模式中的结尾$
锚定到行尾(此处是URL尾)。这意味着只考虑完全匹配,而不考虑对遵循该模式的URL的请求。
还有一个一般性说明:您应该始终喜欢将此类规则放置在http服务器主机配置中,而不要使用动态配置文件(“ .htaccess”)。这些动态配置文件增加了复杂性,通常是导致意外行为,难以调试的原因,并且确实降低了http服务器的速度。仅当您无法访问真正的http服务器主机配置(阅读:真正便宜的服务提供商)或坚持编写自己的规则的应用程序(这显然是安全的噩梦)时,才提供它们作为最后的选择。