0

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

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

此外,我不希望用户/谷歌访问: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/ ”,虽然它工作正常,但我m 仍然有 2 个显示相同内容的重复 URL。

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

非常感谢!

4

1 回答 1

2

而不是这个:

# 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]
于 2014-10-08T01:17:52.567 回答