2009-08-27 3 views
1
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^admin/([^/]+)/([^/]+).php website.com/admin/index.php?route=$1/$2 [NS] 
RewriteRule ^modules/([^/]+)/([^/]+).php website.com/admin/index.php?route=$1/$2 [NS] 

вышеуказанные работы для того, когда вы входите. он идет до /admin/modules/catalog, но когда вы нажимаете на ссылку, которая отображается в строке состояния, как /admin/vendors/, она не работает ???? какие поставщики является суб реж или модули/Htaccess каталог

любая идея

+0

Вы должны быть более конкретными о том, что фактическая ошибка. – Gumbo

ответ

2

Учитывая то, что сказано в документации о RewriteCond, и то, что вы получите, я бы сказал, что RewriteConditions применяются только к одному RewriteRule, который следует :

Директива RewriteCond определяет условие правила . Один или более RewriteCond может предшествовать RewriteRule директиву. Следующее правило тогда используется только если оба текущее состояние URI, соответствует его шаблону, и если будут выполнены эти условия.

Что делать, если вы попытаетесь дублировать эти RewriteCond перед вторым RewriteRule? По крайней мере, как тест?


И вот interesting thing про флаг S | Skip. Среди прочего и пример, он сказал:

[S] флаг используется для пропуска правила , что вы не хотите, чтобы бежать. Это может быть можно считать оператором goto в вашем наборе правил перезаписи.

А также:

Этот метод полезен, поскольку RewriteCond относится только к RewriteRule сразу же после этого. Таким образом, если вы хотите сделать RewriteCond, примените к нескольким RewriteRules, одна из возможных методик - это отрицание этих условий и использование a [Skip] flag.

Я никогда не пробовал это, но это может быть полезно, в вашей ситуации ... возможно ^^

Тем не менее, это какая-то часть документации Apache, которые, кажется, указывают на то, что я сказал ранее верно.

+0

«RewriteConditions применимы только к одному RewriteRule, который следует за« Не поймал даже эту приятную работу. –

0

Предполагая, что плохой английский язык? Похоже, вы запрашиваете/admin/vendors; но вы говорите, что поставщики находятся в/modules.

Смежные вопросы