2013-07-04 1 views
1

У меня есть сайт, где у меня есть несколько ссылок, как это: http://mysite.com/search-RANDOM_WORDS.htm
Проблема заключается в том, что Google пытается индексировать ссылки как:Перенаправление несуществующих подпапки с .htaccess

http://mysite.com/search-RANDOM_WORDS.htm/existing-link-on-the-site 
http://mysite.com/search-WORD.htm/link-on-the-site/search-ANOTHER_WORD.htm 

и т.д. и т.п. Сайт не использует подпапки в ссылках, каждая ссылка находится на корне. Я действительно не понимаю, откуда Google использует эти ссылки, но мне нужно как-то это исправить. Я уже использую mod_rewrite, но я еще не нашел рабочего решения для своей проблемы. Он должен работать так:

  1. Если ссылка, что пытается получить доступ, содержит вложенную папку, которая не существует на сервере
  2. reditect его в корень с 404 ошибкой.

Как это можно сделать? Спасибо!

+0

Так что вы хотите переадресовать 'http://mysite.com/search-WORD.htm/link -on-the-site/search-ANOTHER_WORD.htm' на 'http: // mysite.com/search-WORD.htm'? – anubhava

+0

Да, что-то в этом роде или лучше сохранить последнюю «подпапку»: 'http: // mysite.com/search-WORD.htm/link-on-the-site/search-ANOTHER_WORD.htm' быть:' http: // mysite.com/search-ANOTHER_WORD.htm' – Frantique

ответ

1

Включение mod_rewrite и .htaccess через httpd.conf, а затем поместить этот код в .htaccess под DOCUMENT_ROOT каталоге:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteRule ^(search-.+?\.htm)/.*$ /$1 [L,R=301,NC] 
+0

Это не совсем так, потому что он попадает в цикл перенаправления, если я пытаюсь найти допустимую ссылку, например: 'http://mysite.com/search-WORD.htm 'Правильно будет:' RewriteRule^(поиск -. +? \. Htm /).*$/$ 1 [L, R = 301, NC] ' – Frantique

+0

Спасибо, я сделал исправление. – anubhava

 Смежные вопросы

  • Нет связанных вопросов^_^