powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Глючит RewriteEngine
10 сообщений из 10, страница 1 из 1
Глючит RewriteEngine
    #37513145
b6392820
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
httpd.conf
Код: plaintext
1.
2.
3.
4.
5.
6.
AddHandler cgi-script .cgi
<Location "/">
 AllowOverride All
 Options -Indexes Includes ExecCGI
 Allow from all
 Order allow,deny
</Location>

.htaccess
Код: plaintext
1.
2.
 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} test.php
 RewriteRule .* redirect.html [L]

-

Постоянно выдаётся ошибка 403. При этом не только для файла "test.php" (который в условии), но вообще для любых файлов данного каталога. Если строки в .htaccess убрать, всё нормально работает.

Где искать багу?
...
Рейтинг: 0 / 0
Глючит RewriteEngine
    #37513333
b6392820
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже не глючит. Вопрос закрыт.
...
Рейтинг: 0 / 0
Глючит RewriteEngine
    #37514588
b6392820
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё вопрос. Данная конструкция не работает. Насколько я понимаю, зацикливается. Но! Я же написал оператор [L]. И апач должен (при запросе страницы test1.htm) после первого же правила закончить проверки, отобразив контент страницы test2.htm.

А он обрабатывает первое правило, а потом думает, что REQUEST_FILENAME - это уже "test2.htm", обрабатывает второе правило, потом видит, что REQUEST_FILENAME - это снова "test1.htm" и повторяет первое правило.

Код: plaintext
1.
2.
3.
4.
RewriteCond %{REQUEST_FILENAME} test1.htm
RewriteRule .* test2.htm [L]

RewriteCond %{REQUEST_FILENAME} test2.htm
RewriteRule .* test1.htm [L]

Как этого избежать?
...
Рейтинг: 0 / 0
Глючит RewriteEngine
    #37514649
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конкретно для этого случая - переименовать файлы.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Глючит RewriteEngine
    #37514671
b6392820
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данный случай - всего лишь пример. Мне интересно, почему [L] не работает?
...
Рейтинг: 0 / 0
Глючит RewriteEngine
    #37514711
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле работает как должно. Директива L означает что следующие за этим правила обрабатываться не будут. Но виноват второй проход, когда переписанный URL попадает под действие другого правила. Посмотрите мануал: http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_l
Как вариант, можно в URL прицепить какую то контрольную переменную и проверять ее отсутствие дополнительным RewriteCond. Но это уже костыль на самый крайний случай. Возможно, есть еще варианты, но я не в курсе таковых.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Глючит RewriteEngine
    #37514734
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleВозможно, есть еще варианты, но я не в курсе таковых.

типа
RewriteCond %{REQUEST_FILENAME} (test1.htm|test2.htm)
+ rewritemap
...
Рейтинг: 0 / 0
Глючит RewriteEngine
    #37514846
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,

Ну дык это оно ж тоже пойдет на второй круг после первого преобразования. Или нет?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Глючит RewriteEngine
    #37515294
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleНу дык это оно ж тоже пойдет на второй круг после первого преобразования. Или нет?

В контексте VirtualHost - все ок.

Впрочем даже вариант ТС можно заставить работать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        Alias /fakeroot/  "/var/www/"
        <Location />
                RewriteEngine On
                RewriteCond %{REQUEST_FILENAME} test1.html
                RewriteRule .* /fakeroot/test2.html [L,PT]

                RewriteCond %{REQUEST_FILENAME} test2.html
                RewriteRule .* /fakeroot/test1.html [L,PT]
        </Location>
        <Location /fakeroot>
                RewriteEngine Off
        </Location>
...
Рейтинг: 0 / 0
Глючит RewriteEngine
    #37515313
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно, интересный вариант )
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Глючит RewriteEngine
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]