помогите написать редирект 301

chaymaker
На сайте с 22.12.2009
Offline
193
410

вместо старого сайта поставил новый сайт. оба на хтмл и и имеют больше 100 страниц

в гугле остались старые страницы, хочу перенаправить все старые на главную

то есть на site.ru/index.html

названия старых файлов имеют разные наименования тогда как новые файлы имеют одинаковый префикс, например сайт_страница.html

надо написать редирект для всех старых страниц которые не имеют префикс "сайт_" и перенаправить всех на site.ru/index.html

спасибо за помощь заранее

bon_eur
На сайте с 09.06.2012
Offline
40
#1

Может, лучше смотреть не на страницу, а на имя домена?

RewriteCond %{HTTP_HOST} !=new_site.ru

RewriteRule . http://new_site.ru/? [R=301,L]

(Если не новый сайт, то редирект на главную страницу нового).

chaymaker
На сайте с 22.12.2009
Offline
193
#2

я не совсем понимаю как это работает, я слаб в этой области. поэтому приведу пример:

есть например 100 страниц в индексе:

сайт.ру/старая1_страница.хтмл

сайт.ру/другоеназвание2_страница.хтмл

...

сайт.ру/совсемдругаястраница100_страница.хтмл

там же по фтп я удалил эти файлы и положил вместо них новые страницы в виде:

сайт.ру/страница_новая1.хтмл

сайт.ру/страница_новая2.хтмл

...

сайт.ру/страница_новая100.хтмл

если по вашему ответу выше ставить редирект то эти новые страницы тоже перенаправятся на индекс? или только те которые недоступны?

bon_eur
На сайте с 09.06.2012
Offline
40
#3
chaymaker:
надо написать редирект для всех старых страниц которые не имеют префикс "сайт_" и перенаправить всех на site.ru/index.html

ОК, если домен не меняется, то попробуйте так:

RewriteCond %{REQUEST_URI} \.html$

RewriteCond %{REQUEST_URI} !=/index.html
RewriteRule !(site_) /index.html? [R=301,L]

Если урл заканчивается на .html и не равен /index.html и не имеет строки site_, то 301 на index.html.

Работает?

chaymaker
На сайте с 22.12.2009
Offline
193
#4

все работает )) спасибо

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий