powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / помогите с mod_rewrite
3 сообщений из 3, страница 1 из 1
помогите с mod_rewrite
    #38507193
ugodrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем набросал такую вот хрень но она не пашет почему - вьехать не могу

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
RewriteEngine On

RewriteRule ^(th/([a-z0-9]+)/(.+))$ - [E=THFILE]
RewriteCond %{REQUEST_URI} !-f 
RewriteCond %{REQUEST_URI} !-d
RewriteCond %{ENV:REDIRECT_THFILE} -f
RewriteRule (.+) thy.php [L]
RewriteRule (.+) thn.php?looser=1&hello=%{ENV:REDIRECT_THFILE} [PT]



Вобщем задача такова.. по запросу к th/dir1/dir2/.. проверить существование файла,
если такого нет, то модифицируем запрос в dir2/.. и опять проверяем наличие
если такой есть, то перенаправляем в точку 1
если такого нет , то перенаправляем в точку 2

вроде набросал всё правильно..
и в пхп проверяемая переменная видна, но
RewriteCond %{ENV:REDIRECT_THFILE} -f
не срабатывает пробовал по всякому

может у кого есть мысли?
...
Рейтинг: 0 / 0
помогите с mod_rewrite
    #38508021
ugodrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробовал следующие комбинации
Код: php
1.
2.
3.
4.
RewriteCond %{ENV:REDIRECT_THFILE} -f
RewriteCond %{ENV:THFILE} -f
RewriteCond %{REDIRECT_THFILE} -f
RewriteCond %{THFILE} -f


эффект нулевой. всё время результат отрицательный
...
Рейтинг: 0 / 0
помогите с mod_rewrite
    #38508812
ugodrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем сам разобрался. почитал доку про rewrite выяснил, что окружение модуля - FAKE ..
оно создается специально для модуля и на выходе тоже преобразуется
соответственно после преобразования надо проверять полный путь до файла
тоесть не
Код: php
1.
RewriteCond %{ENV:THFILE} -f


а
Код: php
1.
RewriteCond %{DOCUMENT_ROOT}/path_to_dir/%{ENV:THFILE} -f


Таким образом нашел два решения:
на базе моего
Код: php
1.
2.
3.
4.
5.
6.
7.
RewriteRule ^th/([a-z0-9]+)/(.+)$ - [E=THFILE:$2,E=THTPL:$1]
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} (th/)
RewriteCond %{DOCUMENT_ROOT}/folder/%{ENV:THFILE} -f
RewriteRule (.+) thy.php [L]
RewriteRule (.+) thn.php [PT]


и проще
Код: php
1.
2.
3.
4.
5.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/([^/]+)/th/([^/])/(.+)$
RewriteCond %{DOCUMENT_ROOT}/%1/%3 -f
RewriteRule ^(.*)$ thy.php [L]
RewriteRule (.+) thn.php [PT]
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / помогите с mod_rewrite
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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