Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Модреврайт не работает на урлах, где встречается точка
Новая тема
Ответить
цитата
29/08/17 в 11:54
indelible[p]ink
Коллеги, столкнулся с проблемой: есть урлы вида
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" есть точка.
Куда копать, чего не хватает в правиле? Убрать точку нельзя, категория очень большая, в индексе тьма страниц.
Последний раз редактировалось: indelible[p]ink (
29/08/17 в 12:49
), всего редактировалось 1 раз
цитата
29/08/17 в 12:20
S_Flash
1.
indelible[p]ink писал:
корректно работает для урлов вида
domain.ru/dir.name/subdir/index.htm
domain.ru/dirname/index.htm
Но категорически не работает на категории domain.ru/dir.name/subdir/index.htm где в "dir.name" есть точка.
Куда копать, чего не хватает в правиле? Убрать точку нельзя, категория очень большая, в индексе тьма страниц.
Пререпроверь код ещё раз ибо у тебя и в вопросе каша:
Цитата:
корректно работает для урлов вида domain.ru/dir.name/subdir/index.htm Но категорически не работает на категории domain.ru/dir.name/subdir/index.htm
2. Зачем использовать Module mod_rewrite.c, и тут же примерять код для .htaccess? Не проще тогда перенести всё в htaccess ? Я имею ввиду флаг [L], который не работает в данном контексте.
3. Что означает "категорически не работает"? Какая ошибка снаружи и в логах?
4. Пробовал точку экранировать?
RewriteRule ^(.*)index\.htm$
цитата
29/08/17 в 12:48
indelible[p]ink
Снаружи с урла domain.ru/dir.name/subdir/index.htm перебрасывает на domain.ru// (именно так, с двумя слешами на конце).
Пробовал экранировать точку, пробовал городить конструкции с явным указанием dir.name. Всё равно шляпа с двумя слешами на выходе.
Где на Денвере искать нужные логи? Я сейчас на нём бьюсь :/
Стартпост поправил, спасибо
цитата
29/08/17 в 13:30
S_Flash
А сам урл с точкой
http://domain.ru/dir.name/subdir/
не редиректит на
http://domain.ru//
?
цитата
29/08/17 в 13:38
S_Flash
Опять же этот код взят для htaccess
В твоём варианте путь запроса в переменную $1 попадает с начальным слешем.
Перенеси
Код:
RewriteEngine On
RewriteRule ^(.*)index.htm$
http://test1.ru/$1
[R=301,L]
В в htaccess и всё может заработать.
цитата
29/08/17 в 13:50
indelible[p]ink
спасибо!
Новая тема
Ответить
Эта страница в полной версии