Apache regex -301重定向以根除url路径中的重复项

时间:2017-06-01 01:45:09

标签: apache .htaccess url-rewriting seo url-redirection

我们正在使用CMS生成格式为www.domain.com/home/help/contact/contact的网址。这里第一次出现联系是目录,第二次出现是HTML页面本身。这些网址引起了SEO领域的问题。

我们已经实施了规范标签,但企业希望确保他们不会在搜索引擎和Google分析中遇到这些重复项,并要求我们在我们的网络服务器上实施301解决方案。

我的问题是我们有一个正则表达式来找到这些匹配,但我还需要匹配前的URL部分。我们的正则表达式是.*?([\w]+)\/\1+,这会在contact中返回/home/help/contact/contact。如何获得/home/help/路径,以便重定向到正确的页面?有人可以帮忙解决这个问题吗,因为我是初学者,当涉及正则表达式时?

1 个答案:

答案 0 :(得分:1)

由于您可以使用匹配的组获取contact,因此请将匹配组中的所有内容包含在其中:

(.*?)(/[\w]+)\2+

我已将/放入匹配组中,这样您就不会得到误报

    /home/some/app/page
this would be \1 ^ ^ found repetition (character p would be matched)