Модреврайт не работает на урлах, где встречается точка :(

toxic steel
На сайте с 28.12.2007
Offline
175
1027

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

domain.ru/dir.name/subdir/index.htm

надо убрать index.htm и оставить урлы вида

domain.ru/dir.name/subdir/

Правило

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On

RewriteRule ^(.*)index.htm$ http://test1.ru/$1 [R=301,L]

</IfModule>

корректно работает для урлов вида

domain.ru/dir.name/subdir/index.htm

domain.ru/dirname/index.htm

Но категорически не работает на категории domain.ru/dir.name/index.htm где в "dir.name" есть точка.

Помогите с правилом, пожалуйста. Убрать точку нельзя, категория очень большая, в индексе тьма страниц.

Есть отличные, недорогие рекламные места на агрофоруме (http://farmerforum.ru/viewtopic.php?t=1725)! Клуб истинных ценителей денег (http://coinshunter.ru/).
toxic steel
На сайте с 28.12.2007
Offline
175
#1

Разобрался 🍿

Ragnarok
На сайте с 25.06.2010
Offline
226
#2
toxic steel:
Разобрался

напиши как, вдруг кому-то поможет

//TODO: перестать откладывать на потом
toxic steel
На сайте с 28.12.2007
Offline
175
#3

Обычно я так и делаю, но здесь проблема была не в точке, а в слетевшем кеше :)

RewriteEngine On

RewriteRule ^(.*)index.htm$ http://test1.ru/$1 [R=301,L]

Корректно работает, как и должно было с самого начала :)

M
На сайте с 04.12.2013
Offline
223
#4

Вероятность не велика, но все же лучше проэкранировать точку в регулярке, чтобы не «понаредиректить» лишнего.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts

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