Помогите с Redirect через .htaccess

S
На сайте с 23.06.2006
Offline
55
629

Помогите настроить правильно, а то никак не получается.

Есть такая структура сайта

/cat1/page.php

/cat1/page2.php

есть страница cat1.html

надо сделать редирект с /cat1/ на cat1.html при этом, чтоб все страницы /cat1/page.php не стали cat1.htmlpage.php. У меня получается все время cat1.htmlpage.php :(

т.е. должно существовать cat1.html и одновременно /cat1/page.php

и подобная же вещь с вложенными категориями

/cat2/cat3/page.php

чтоб не превращалась в /cat2.htmlcat3.htmlpage.php и при этом можно было сделать редирект со страниц /cat2/ и /cat2/cat3/ на страницы например cat2.html , cat3.html или вообще на abracadabra.html

siv1987
На сайте с 02.04.2009
Offline
427
#1

RewriteEngine On

RewriteRule ^cat1/$ /cat1.html [R=301,L]

RewriteRule ^cat2/$ /cat2.html [R=301,L]

RewriteRule ^cat2/cat3/$ /abracadabra.html [R=301,L]

S
На сайте с 23.06.2006
Offline
55
#2

Спасибо, только что сам как раз сделал правильно. ☝

Только я писал

RewriteRule ^cat1\/$ cat1\.html [R=301,L]
siv1987
На сайте с 02.04.2009
Offline
427
#3

В первом аргументе слеш не является спец символом чтобы его экранировать.

Во втором аргументе не regexp строка чтобы экранировать спец символы.

S
На сайте с 23.06.2006
Offline
55
#4

Ок, исправлю, спасибо еще раз.

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

RewriteRule ^cat1/$ /cat1.html [NC,R=301,L]
не работает, а

RewriteRule ^cat1/$ [NC] /cat1.html [R=301,L]
выдает 502 ошибку. А без этого cat1 редиректится, а Cat1 выдает 404 :(
siv1987
На сайте с 02.04.2009
Offline
427
#5

NC (no case) - case-insensitive, должен работать. Очистите кеш браузера

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