Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: mod_rewrite и условия вида if... elseif... else
 
 автор: webmechanics   (11.04.2005 в 11:46)   письмо автору
 
 

можно ли сделать, чтоб mod_rewrite проверял условия иерархически? типа если в REQUEST_URI есть подстрока "/topic/" и нет подстроки "/item/" то делать то-то, если есть обе - то делать сё-то..

у меня сейчас написано вот так, но не работает... что поправить?

код:

RewriteCond %{REQUEST_URI} .*/item/.* %{REQUEST_URI} !.*/topic/.*
RewriteRule ^(.*)item/(.*)/$ $1exec/?item=$2

RewriteCond %{REQUEST_URI} .*/topic/.* %{REQUEST_URI} !.*/item/.*
RewriteRule ^(.*)topic/(.*)/$ $1exec/?topic=$2

RewriteCond %{REQUEST_URI} .*/item/.*/topic/.*
RewriteRule ^(.*)item/(.*)/topic/(.*)/$ $1exec/?item=$2&topic=$3

   
 
 автор: glsv (Дизайнер)   (13.04.2005 в 23:02)   письмо автору
 
   для: webmechanics   (11.04.2005 в 11:46)
 

Наконец то добрался до вашего вопроса. Попробуйте следующий вариант

RewriteEngine on 
Options +FollowSymlinks 
RewriteBase / 
RewriteCond %{REQUEST_URI} item 
RewriteCond %{REQUEST_URI} !topic 
RewriteRule ^(.*)item/(.*)/$ $1exec/?item=$2

RewriteCond %{REQUEST_URI} topic 
RewriteCond %{REQUEST_URI} !item 
RewriteRule ^(.*)topic/(.*)/$ $1exec/?topic=$2

RewriteCond %{REQUEST_URI} item/.*/topic/.* 
RewriteRule ^(.*)item/(.*)/topic/(.*)/$ $1exec/?item=$2&topic=$3


Т.е. перед каждым RewriteRule писать список всех условий (по одному в строке), которые должны быть верны для выполнения правила.
Я не тестировал работу RewriteRule, так как у вас слишком сложные URL и не хочется воссоздавать структуру сайта, но условия выполняются правильно.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования