【问题标题】:How to avoid duplicate content mapping urls with htaccess如何使用 htaccess 避免重复的内容映射 url
【发布时间】:2014-12-02 13:29:09
【问题描述】:

我对编写 htaccess 规则有点陌生。我想让我网站中的网址尽可能简单。

假设我想为根域“映射”/home/ 目录。因此,http://www.domain.com 将显示 /home/ 目录中的内容而不更改 url。

此外,我不希望用户/google 访问:http://www.domain.com/home/,因此,如果有人访问该 URL,我想将他们重定向回我的根域:http://www.domain.com

我看到 google 正在索引具有相同重复内容的两个目录。 http://www.domain.com http://www.domain.com/home/

我能做些什么来阻止这种情况吗?我不想使用 robots.txt,因为我听说这是一种不好的做法。

RewriteEngine on
RewriteBase /

# Redirect /home/ dir to 'www.domain.com'
#RewriteCond %{REQUEST_URI} ^/home/$ [NC]
#RewriteRule ^(.*)$ / [R=301,L]

# Show /home/ dir for 'www.domain.com'
RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ /home/$1 [L]

如果我启用这段代码中的所有行,我会得到一个永不结束的重定向循环。

此外,我在尝试添加“seo 友好”网址时也遇到了同样的问题。我正在尝试将“http://www.domain.com/thread/thread-name/”映射到“http://forum.domain.com/thread-name/”,虽然它工作正常,但我仍然有 2 个显示相同内容的重复 URL。

我想了解避免搜索引擎将重复内容编入索引的最佳做法。我应该将其重定向到 404 吗?我不想使用 robots.txt 来实现这一点,因为有很多文件/目录组合,它不适合我的目的。

非常感谢!

【问题讨论】:

    标签: apache .htaccess redirect seo duplicate-content


    【解决方案1】:

    而不是这个:

    # Redirect /home/ dir to 'www.domain.com'
    #RewriteCond %{REQUEST_URI} ^/home/$ [NC]
    #RewriteRule ^(.*)$ / [R=301,L]
    

    尝试:

    # Redirect /home/ dir to 'www.domain.com'
    RewriteCond %{THE_REQUEST} \ /+home/([^\?\ ]*)
    RewriteRule ^ /%1 [R=301,L]
    

    【讨论】:

    • 非常感谢您提供如此出色的解决方案!它工作得很好。我想知道我现在应该怎么做才能从谷歌索引中删除“/home/”url,这样我就没有重复的内容了。我会继续寻找,谢谢!
    猜你喜欢
    • 2021-05-07
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    相关资源
    最近更新 更多