Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
10 / 10 / 0
Регистрация: 08.05.2011
Сообщений: 142

RewriteCond влияет толко для один, следушчи RewriteRule. можно как-то превишать количество RewriteRule

21.01.2012, 16:31. Показов 4485. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здраствуите, вот что интересно, сделаю mod_rewrite и для етого в .htaccess фаиле пишу

Code
1
2
3
4
5
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule что-то преобразование
RewriteRule что-то преобразование2
RewriteCond влияет толко на первом RewriteRule, для втарого RewriteRule ети условие не работает и для того чтоб втарои RewriteRule "понимал" условие, придиотся сделать так:

Code
1
2
3
4
5
6
7
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule что-то преобразование
 
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule что-то преобразование2

вопрос: можно как-то определит, что RewriteCond работал для заданнои количество раз RewriteRule ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.01.2012, 16:31
Ответы с готовыми решениями:

Не пойму как работает RewriteCond и RewriteRule
Вот код из htaccess AddDefaultCharset utf-8 DirectorySlash Off RewriteEngine On Options +SymLinksIfOwnerMatch RewriteBase / ...

RewriteRule - переписать один GET-параметр, оставив другой
Здравствуйте. Так получилось, что из-за особенностей авторизации на RTMP-сервере надо преобразовывать URL несколько нестандартным путем. ...

Как правильно написать RewriteRule в .htaccess для редиректа директории без подкатегории?
Мне необходимо что бы при переходе на ИМЯ_САЙТА/category/materialy/ меня редиректило на ИМЯ_САЙТА/materialy/ Но при переходе на...

1
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
22.01.2012, 08:57
Проблема вся в том, что порядок выполнения следующий:
  1. Проверка совпадения RewriteRule;
  2. Проверка совпадений RewriteCond, если есть;
  3. Замена.
Напрямую, имхо, нет способа применить один и тот же RewriteCond к нескольким RewriteRule'ам.

Способ 1: цепь.

У RewriteRule'а есть флаг C (chain). Следующий RewriteRule, который идет после данного с флагом C, будет выполнен только если этот выполнился. Т.е. выполнение всей цепи RewriteRule'ов, объединенных через [C], будут прервано, как только один не совпадет (каждый следующий будет выполнен, только если выполнились все предыдущие).
Perl
1
2
3
4
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule что-то преобразование [C]
RewriteRule что-то преобразование2
Проблема в том, что, скорее всего, такое поведение не соответствует поставленной задачи.

Способ 2: триксовый.

Отрицательный(-ые) RewriteCond'ы + фиктивное всегда истинное правило без замены с флагом "пропустить следующие N правил"
Perl
1
2
3
4
5
6
7
8
9
10
11
12
13
# # было так
# RewriteCond %{REQUEST_FILENAME} !-f  
# RewriteCond %{REQUEST_FILENAME} !-d
 
# после отрицания стало так:
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
# всегда истина, ничего не заменяем, пропустить следующие 2 правила (S - Skip)
RewriteRule .? - [S=2]
 
RewriteRule что-то преобразование
RewriteRule что-то преобразование2
# здесь обязательно коммент о том, что данный фрагмент неделим от самого его начала
Проблемы:
  • Ухудшение читабельности кода из-за отрицательного условия (спасаться подробными комментариями в коде).
  • После добавления/удаления RewriteRule'ов в фрагмент обязательно нельзя забывать о том фисле, где указано их количество (сколько пропустить).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.01.2012, 08:57
Помогаю со студенческими работами здесь

RewriteRule для скачивания файла
Помогите составить правило для скачивания файл PDF PHP скрипт генерирует pdf файлы, при определенном GET запросе это pdf файл отдается...

Составить правило RewriteRule для .htaccess
Привет. Есть ссылка вида http://domen.com/papka/?from=nokia&to=samsung нужно чтобы сайт работал если я перейду по ссылке вида ...

Переадресация с RewriteRule для существующих файлов
Добрый день, возникла проблема при переадресации с директории с файлами: Есть директория test, в этой директории расположены файлы:...

Как создать два RewriteRule?
Есть htaccess, маршрутизация (роутинг) RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d ...

Настроить RewriteRule для замены хоста в *чужих* URL
Есть Домашнийкомпьютер с Windows 7 SP 1Rus 64 bit. На нём локально на 127.0.0.1:80 установлен Apache. Своего сайта на компьютере НЕТ. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru