Apache использовал три разные реализации регулярных выражений. Первым был System V8, начиная с Apache 1.3 они использовали POSIX ERE, а начиная с Apache 2 они использовали PCRE. И только PCRE поддерживает прогнозные утверждения. Поэтому вам нужен Apache 2, чтобы использовать это правило.
Но теперь к вашему вопросу. Если вы используете это правило:
RewriteRule ^index/ - [L]
все, что начинается с /index/
, должно быть перехвачено этим правилом, и дальнейшее правило не должно применяться.
Но если это не сработает, попробуйте это:
RewriteRule !^index/ …
Опять же, это правило будет применяться к любому запросу, путь URL которого не начинается с /index/
.
И если вы хотите получить что-либо из URL, используйте условие RewriteCond
, чтобы проверить либо полный путь к URL (%{REQUEST_URI}
), либо просто совпадение одной из ваших групп шаблонов:
RewriteCond %{REQUEST_URI} !^/index/
RewriteRule (.*) …
# or
RewriteCond $1 !^index$
RewriteRule ^([^/]+)/(.*) …