简要背景:我们的知识库有大约 200 篇文章,虽然每篇文章都可以有各种 URL,它们都包含指向我们希望 Google 索引的内容的规范链接。规范链接工作正常,但蜂鸟发布后,谷歌已开始在常见问题解答中删除该文章可用的其他 URL 格式的许多规范链接。没有任何改变,网站的所有其他部分都正常工作。
我们将继续研究为什么会发生这种情况,但同时最好的方法是将特定文章的所有 URL 301 到所需的(规范)URL。由于 htaccess 文件中的其他内容,我们尝试不同的方法根本没有成功。它最终陷入某种循环。
请允许我分享我们的要求,然后发布我们的 htaccess,以便我们可以根据需要进行更改。
要求
对所有 URL 强制非安全(使用 301 将所有 https 重定向到 http) - 已经在 htaccess 中工作 将非 www 重定向到 www - 已经在 htaccess 中工作 将包含特定导演的任何 URL 重定向到静态 URL - 不工作
需要重定向的文章示例
一篇特定的文章可以有多个 URL
- /kb/article/AA-00333
- /kb/article/AA-00333/0/
- /kb/article/AA-00333/0/1/
- /kb/article/AA-00333/0/article-title.html
我们希望将任何包含 AA-00333 的 URL 重定向到http://www.xyzdomain.com/kb/article/AA-00333/0/article-title.html
我们可以在 htaccess 中手动为每篇特定文章设置一个条目。
当前的 HTACCESS
AddDefaultCharset UTF-8
DirectoryIndex index.php
#redirect articles
#RewriteEngine on
#RewriteRule .*AA-00333.* http://www.xyzdomain.com/kb/article/AA-00333/0/article-title.html [L,R=301]
#Redirect all secure to non secure https/http with 301
RewriteCond %{HTTPS} ^on$
RewriteRule ^(.*)$ http://www.xyzdomain.com/kb/$1 [R=301,L]
<IfModule mod_rewrite.c>
RewriteEngine On
# Redirect non-www to www:
RewriteCond %{HTTP_HOST} !^(www\.xyzdomain\.com)?$
RewriteRule ^(.*)$ http://www.xyzdomain.com/kb/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
#