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

Код: 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
20.12.2013, 15:29
    #38508021
ugodrus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с mod_rewrite
пробовал следующие комбинации
Код: php
1.
2.
3.
4.
RewriteCond %{ENV:REDIRECT_THFILE} -f
RewriteCond %{ENV:THFILE} -f
RewriteCond %{REDIRECT_THFILE} -f
RewriteCond %{THFILE} -f


эффект нулевой. всё время результат отрицательный
...
Рейтинг: 0 / 0
21.12.2013, 15:00
    #38508812
ugodrus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с mod_rewrite
Вобщем сам разобрался. почитал доку про 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
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / помогите с mod_rewrite / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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