apache - 如何使用 htaccess 避免重复的内容映射 url

标签 apache .htaccess redirect seo duplicate-content

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

假设我想为根域“映射”/home/目录。所以,http://www.domain.com将在不更改 url 的情况下显示/home/目录中的内容。

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

我看到谷歌正在为两个具有相同重复内容的目录编制索引。 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 个重复的 URLS 显示相同的内容。

我想听听避免搜索引擎索引重复内容的最佳做法。我应该将它重定向到 404 吗?我不想使用 robots.txt 来实现它,因为有很多文件/目录组合,它无法满足我的目的。

非常感谢!

最佳答案

取而代之的是:

# 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]

关于apache - 如何使用 htaccess 避免重复的内容映射 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26247557/

相关文章:

C++函数cout重定向到文件

ruby-on-rails - rails : Restrict API requests to JSON format

html - absolute href 可以在生产站点上使用吗?

css - Firefox 和 Safari 不会仅从我的服务器下载文件

reactjs - react-router 使用托管在 GoDaddy 上的 React 应用程序在页面刷新时抛出 404

php - 从 php 和 sql 创建动态自动递增的 seo 友好 url

php - 启用 error_reporting 后,Mongo 将不会加载 phpinfo

mysql - 用于在 Windows 上管理 Apache 和 MySQL 的通知区域工具

php - htaccess Mod 多个 URL 和 PHP $_GET 的重写规则

linux - nginx 和 linux 上不区分大小写的路径匹配