Сравните две обратные ссылки в RewriteCondApache

Ответить
Anonymous
 Сравните две обратные ссылки в RewriteCond

Сообщение Anonymous »

Это старый шаблон URI /release-(\w+)/(\w+)/(.*), где первый и второй шаблон регулярного выражения всегда одинаковы, со следующими примерами: Они объединены в одну папку (т. е. /release) , в новой версии:

Код: Выделить всё

ROOT
└── release
├── foo
│   ├── ...
│   └── ...
├── bar
│   ├── ...
│   └── ...
└── ...
С этой конфигурацией RewriteRule:

Код: Выделить всё

RewriteRule "^/release-(\w+)/(\w+)/(.*)$"  "/release/$1/$3" [L]
все эти перенаправления работают:
  • Код: Выделить всё

    /release-foo/foo/(.*)
    => /release/foo/(.*): так и есть
  • Код: Выделить всё

    /release-foo/bar/(.*)
    => /release/foo/(.*): это НЕ должно быть разрешено
  • Код: Выделить всё

    /release-foo/baz/(.*)
    => /release/foo/(.*): Это НЕ должно быть разрешено
Мой вопрос: что я могу поставить здесь как RewriteCond? Возможно ли это вообще?

Код: Выделить всё

RewriteCond expr "$2 == $1"   

Подробнее здесь: [url]https://stackoverflow.com/questions/78757368/compare-two-backreferences-in-rewritecond[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Apache»