каталог htaccess - PullRequest
       7

каталог htaccess

1 голос
/ 28 августа 2009
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/, она не работает ???? какие поставщики это субдиректория или модули /

любая идея

Ответы [ 2 ]

2 голосов
/ 28 августа 2009

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

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

Что если вы попытаетесь продублировать эти RewriteCond перед вторым RewriteRule? Хотя бы в качестве теста?


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

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

А также:

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

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

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

0 голосов
/ 28 августа 2009

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

...