Как избежать дублирования URL-адресов сопоставления содержимого с помощью htaccess
Я новичок в написании правил htaccess. Я хочу, чтобы URL-адреса на моем сайте были максимально простыми.
Допустим, я хочу "сопоставить" / 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" URL. Я пытаюсь сопоставить " http://www.domain.com/thread/thread-name/" с " http://forum.domain.com/thread-name/", и хотя он работает нормально, я у меня все еще есть 2 дубликата URL, показывающих то же самое содержание.
Я хотел бы услышать лучшую практику, чтобы избежать индексации дублированного контента поисковыми системами. Должен ли я перенаправить его на 404? Я не хочу использовать robots.txt для реализации этого, потому что есть много комбинаций файлов / каталогов, и это не будет работать для моей цели.
Большое спасибо!
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]