.htaccess редирект с index.htm

AE
На сайте с 21.06.2012
Offline
18
505

Очень много инфы как сделать редирект с главной, но нет вообще инфы как сделать со всех страниц.

Каждая страница сайта заканчивается на index.htm и страницы соответственно работают как по ссылке sait.ru/stranica/index.htm, так и по sait.ru/stranica/

Пытался исправить это следующим кодом:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.htm\ HTTP

RewriteRule ^([^.]+)\.htm$ http://sait.ru/$1 [R=301,L]

RewriteCond %{REQUEST_URI} !(\.[^./]+)$

RewriteCond %{REQUEST_fileNAME} !-d

RewriteCond %{REQUEST_fileNAME} !-f

RewriteRule (.*) /$1.htm [L]

Но код редиректит не на sait.ru/stranica/, а на sait.ru/stranica/index

Подскажите где допустил ошибку

J
На сайте с 20.02.2014
Offline
120
jkm
#1

Шаблон ([^.]+)\.htm захватывает в переменную $1 все вплоть до точки перед расширением.

Попробуйте так


RewriteEngine On

RewriteRule ^(|.+/)index\.htm$ http://sait.ru/$1 [R=301,L]

RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule (.*) /$1.htm [L]
AE
На сайте с 21.06.2012
Offline
18
#2
jkm:
Шаблон ([^.]+)\.htm захватывает в переменную $1 все вплоть до точки перед расширением.
Попробуйте так

RewriteEngine On

RewriteRule ^(|.+/)index\.htm$ http://sait.ru/$1 [R=301,L]

RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule (.*) /$1.htm [L]

Помогло! Спасибо!

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