Я работаю над устаревшим приложением PHP, работающим на Symfony v3 на Apache 2.4.Это приложение защищено аутентификацией Kerberos.Мой Apache VirtualHost выглядит следующим образом:
Listen 80
<VirtualHost *:80>
DocumentRoot "/var/www/app"
AuthType Kerberos
AuthName "App Login"
KrbMethodNegotiate On
KrbMethodK5Passwd On
KrbAuthRealms MY_REALM
KrbLocalUserMapping On
Krb5KeyTab /usr/local/apache2/keytab/apache.keytab
require valid-user
# Symfony URL rewriting
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
[...]
Я добавил API для этого приложения, URL-адрес которого выглядит как /api/users
.Проблема в том, что, как и все мое приложение, этот API защищен Kerberos, но я не хочу.Поэтому я попытался добавить тег LocationMatch в свой vhost следующим образом:
DocumentRoot "/var/www/app"
<LocationMatch "^((?!/api).)*$">
AuthType Kerberos
AuthName "App Login"
KrbMethodNegotiate On
KrbMethodK5Passwd On
KrbAuthRealms MY_REALM
KrbLocalUserMapping On
Krb5KeyTab /usr/local/apache2/keytab/apache.keytab
require valid-user
</LocationMatch>
[...]
Это могло бы сработать, но есть проблема.Кажется, что перезапись URL выполняется ДО, и мой URI преобразуется в эту форму: / api / users => /app.php/api/users
И мне не удается применить LocationMatch к этому новому URI.
Я заблокирован.Как я могу получить доступ к своему устаревшему приложению, защищенному Kerberos, и опубликовать мой API без аутентификации?