我对编写 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/