Правила условного переписывания - Как применить только один из этих двух наборов правил - PullRequest
1 голос
/ 13 июля 2010

Если в 1-й позиции есть browse_by_exam или my_study_centre, начиная с project_name, как в

http://project_name/browse_by_exam/type/classes/...
http://project_name/my_study_centre/page_sort/1,20,name,asc/...

, то примените эти 2 правила:Все остальные URL-адреса применяются эти правила: -

RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]

Спасибо,

Sandeepan

Ответы [ 2 ]

1 голос
/ 20 июля 2010

Я нашел решение сам. Работали следующие: -

############Following rules apply only to browse_by_exam and my_study_centre

RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 ^(browse_by_exam|my_study_centre) 

RewriteRule ^(.*)$ index.php [L,QSA]
#################################################


###Following rules apply to all other pages (other than browse_by_exam and my_study_centre)
RewriteRule ^([a-zA-Z0-9\-\_]+)/?$ index.php?a=$1 

RewriteRule ^([a-z0-9\-\_]+)/([a-z0-9\-\_]+)/?$ index.php?a=$1&b=$2

RewriteRule ^([a-z0-9\-\_]+)/([a-z0-9\-\_]+)/([a-zA-Z0-9\-\_+]+)/?$ index.php?a=$1&b=$2&c=$3

RewriteRule ^([a-z0-9\-\_]+)/([a-z0-9\-\_]+)/([a-zA-Z0-9\-\_+]+)/([0-9]+)/?$ index.php?a=$1&b=$2&c=$3&d=$4

Приветствия

Sandeepan

0 голосов
/ 13 июля 2010

Ни один из этих URL не соответствует шаблонам ваших двух правил. Но если вы хотите написать правила, соответствующие вашим условиям, попробуйте следующее правило:

RewriteRule ^(browse_by_exam|my_study_centre)($|/) foobar [L]
...