Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mod_rewrite неожиданный результат 
:(
    Опции темы
maxipub
Дата 13.12.2011, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Хех, тут помогли. Пошел дальше и получил странный результат:

Код

RewriteEngine On

RewriteRule ^123/$ 123.txt [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .*\.txt$ /404? [L,R=404]


Открываю http://localhost/test/123/ - там все лежит, файл 123.txt имеется. Без двух последних строчек все работает. С ними - отдает 404 что на http://localhost/test/123.txt, что на http://localhost/test/123/, чего так? Стоит же флаг L, я так понимаю, при срабатывании условия, процесс преобразования должен завершаться.

Как быть? Задача - сделать такое ЧПУ, чтоб все работало, но при запросе "оригинальных" файлов отдавалось 404: буд-то ничего такого у нас тут нет... smile  smile 
PM MAIL   Вверх
s0lman
Дата 13.12.2011, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: 9
Всего: 29



Цитата(maxipub @  13.12.2011,  11:35 Найти цитируемый пост)
С ними - отдает 404 что на http://localhost/test/123.txt, что на http://localhost/test/123/, чего так?

Думаю, у вас происходит двойной редирект
123 -> 123.txt
123.txt -> 404


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
maxipub
Дата 13.12.2011, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Цитата(s0lman @  13.12.2011,  13:25 Найти цитируемый пост)
123 -> 123.txt

Это же не является редиректом!? Просто преобразование. Да и в любом случае, по логите, флаг L тогда что делает? Вообще ничего? smile 
PM MAIL   Вверх
ksnk
Дата 13.12.2011, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Код

RewriteCond %{REQUEST_FILENAME} !-d

это - проверка на наличие каталога с именем %{REQUEST_FILENAME}
проверка файла !-f


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
maxipub
Дата 13.12.2011, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



ksnk, это да. Но сути не меняет. smile
PM MAIL   Вверх
ksnk
Дата 13.12.2011, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(s0lman @  13.12.2011,  13:25 Найти цитируемый пост)
у вас происходит двойной редирект
123 -> 123.txt
123.txt -> 404 

!
Флаг [L] вызывает прекращение работы механизма, если правило на этой строке соответствует урл.
Сам htaccess применяется многократно, до тех пор, пока урл не прекратит преобразовываться. Так что для одного прохода, когда действительно приходит 123/ очередной цикл прекращается и начинается новый  smile 
А уж он и преобразует *.txt в 404

P.S. механизм работы htaccess очень несложно записывается на языке программирования, но его логика неприводима к общечеловеческой  smile 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
maxipub
Дата 13.12.2011, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Цитата(ksnk @  13.12.2011,  16:53 Найти цитируемый пост)
Сам htaccess применяется многократно, до тех пор, пока урл не прекратит преобразовываться.

Все на то и смахивает. Жесть выходит. Странно, что ни где об этом не пишут (по крайней мере там, где я читал).

Правда, тут возникает один маленький вопрос: а зачем тогда нужен этот флаг, если будут повторные запуски? Разве что чтоб прогнать по более ранним условиям еще раз... Но такие ситуации даже представить сложно.

Ладно, может кто поможет с самой задачей (см. первый пост)? Как вообще быть? Может задавать какую-нибудь переменную окружения при срабатывании условия, и по ней уже ориентироваться далее. Но будет ли она действительна на следующих прогонах? Будем проверять...
PM MAIL   Вверх
s0lman
Дата 13.12.2011, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: 9
Всего: 29



А задача случайно не решается, если последние две строки вверх поставить?)


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
maxipub
Дата 13.12.2011, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



s0lman, нет, т.к. походу проходы, судя по всему, осуществляются не до того, пока достигается конец файла, а пока не перестанут выполняться условия.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0757 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.