Подскажите регулярку в RewriteRule

[Удален]
387

Админка генерит для одной и той же страницы 3 разных урла:

example.com/page/

example.com/page/index.php

example.com/page.html

Задача - сделать 301 редирект с example.com/page/ и example.com/page/index.php на example.com/page.html. Подскажите, плз, какое регулярное выражение использовать для этого в RewriteRule.

Спасибо.

CE
На сайте с 30.01.2008
Offline
73
#1

Можно вот такое простое попробовать:

RewriteRule ^(page)|(page/)|(page/index.php)$ /page.html [L,R=301]
[Удален]
#2

Спасибо за ответ, только это для одной страницы, а таких страниц больше тысячи.

Есть какая-нибудь возможность использовать одно правило для всех страниц?

wdsg
На сайте с 09.02.2009
Offline
31
#3

RewriteRule ^([a-z0-9]+)/index\.php$ /$1.html [L,R=301]
RewriteRule ^([a-z0-9]+)/ /$1.html [L,R=301]

Загибаться будут все запросы http://site.ru/abc/ и http://site.ru/abc/index.php Если это необходимо, добавьте проверку на существование каталога перед загибом второй строкой. Что такое [a-z0-9], думаю, понятно. Тоже можно подправить под Ваш случай.

Проектирование и разработка сложных IT-систем. Вожусь с проблемными задачами.

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