使用.htaccess删除URL的结尾
我想删除我们网站上使用的一些URL的所有结尾。出于某种原因,许多URL被索引,即使它们被robot.txt阻止 今天刚刚检查了谷歌搜索控制台“索引,尽管被robots.txt阻止”-1200多个URL 它们的形状都一样 他们应该是 每个URL(步行指南)的结束号都会改变,所以我想我只想删除“&username”使用.htaccess删除URL的结尾,.htaccess,http-status-code-301,.htaccess,Http Status Code 301,我想删除我们网站上使用的一些URL的所有结尾。出于某种原因,许多URL被索引,即使它们被robot.txt阻止 今天刚刚检查了谷歌搜索控制台“索引,尽管被robots.txt阻止”-1200多个URL 它们的形状都一样 他们应该是 每个URL(步行指南)的结束号都会改变,所以我想我只想删除“&username” 谢谢正如对问题的评论中所提到的,您需要在此处执行两个步骤: RewriteEngine on RewriteCond %{QUERY_STRING} ^walkID=(\d+)&a
谢谢正如对问题的评论中所提到的,您需要在此处执行两个步骤:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^walkID=(\d+)&
RewriteRule ^/?display-ifootpath-walk$ /display-ifootpath-walk/%1 [R=301]
RewriteRule ^/?display-ifootpath-walk/(\d+)$ /display-ifootpath-walk?walkID=$1 [END]
该规则集同样适用于http服务器主机配置和该主机的文档根目录下的动态配置文件(“.htaccess”样式文件)
请注意,我没有测试这些行,只是在我认为合适的时候写下了它们。但我真的希望我没有犯任何愚蠢的打字错误或逻辑错误
如果您收到带有这些规则的http状态500(“内部服务器错误”),那么很可能您操作的是非常旧版本的apache http服务器。在这种情况下,尝试将[END]
标志替换为[L]
还有一个一般性的注释:您应该总是更喜欢将这些规则放在http服务器主机配置中,而不是使用动态配置文件(“.htaccess”)。这些动态配置文件增加了复杂性,通常是导致意外行为的原因,难以调试,而且它们确实降低了http服务器的速度。只有在您无法访问真正的http服务器主机配置(读:真正廉价的服务提供商)或坚持编写自己的规则的应用程序(这显然是一个安全噩梦)的情况下,才提供它们作为最后一个选项 通常人们需要像https://www.ifootpath.com/display-ifootpath-walk/11470
对于干净的搜索结果…关于谷歌:可能是这些URL在您在robots.txt文件中阻止它们之前就进入了索引吗?是的,这是我们想要的正确URL类型-我们想从索引中删除带有&username的页面结束。也许它们是在robot.txt上的块之前被索引的-但是如果它们被重新定向(通过.htaccess)会更好,我相信你肯定应该重定向它们,因为根据你的描述,这些URL已经在索引中了。这意味着会有对这些URL的潜在请求。您需要注意从这些URL向您喜欢的模式进行外部重定向,并且需要实现内部重写,以再次将该模式解析为您的内部结构。谢谢,我将尝试一下-非常感谢。