Назад | Перейти на главную страницу

Получение параметров URL («? =» Или «& =») с помощью Apache LocationMatch

Я не мог придумать для этого хорошего названия. В основном у меня есть базовая аутентификация, которая охватывает весь сайт из /, но я хочу, чтобы URL-адреса с определенными параметрами были исключены из аутентификации.

Пример: не аутентифицироваться, если есть параметр с именем "zzz"

Protected
http://example.com/
http://example.com/?xxx=xxx&yyy=yyy

Not Protected
http://example.com/?zzz=zzz
http://example.com/?xxx=xxx&zzz=zzz

Пытался сделать что-то вроде

<LocationMatch "/zzz/">
  Allow from all
  Satisfy any
</LocationMatch>

с сейчас безуспешно. Насколько я понимаю, LocationMatch не видит параметров, это правильно? или я все неправильно делаю?

LocationMatch определенно не может этого сделать. Вы можете получить желаемое поведение из mod_rewrite, используя QUERY_STRING параметр, но я бы все равно классифицировал это как "делаю это неправильно" - вы не хотите попадать в ситуацию, когда вы всегда разрешаете запросы без аутентификации, когда ?logout=true, но позже вы добавите страницу, которая не ищет logout param таким же образом.

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