Usamos shibboleth para proteger un host virtual de Apache. Nos gustaría que un solo archivo (un mapa del sitio) esté disponible públicamente para este sitio.
¿Hay alguna forma de codificar esto en virtualhost?
El host virtual actual tiene este aspecto:
<VirtualHost *:443>
ServerName my-staging.sjf.edu
DocumentRoot /var/www/sjf/my
<Directory "/var/www/sjf/my">
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Location />
AuthType shibboleth
ShibRequestSetting requireSession 1
<RequireAny>
Require env allowed
require shib-session
</RequireAny>
</Location>
...
<VirtualHost *:443>
Lo ideal sería que el archivo que me gustaría hacer público estuviera en la raíz del sitio, pero quizás en otro lugar si fuera necesario.
Respuesta1
Simplemente agregue una nueva <Location>
directiva para el mapa del sitio y configúrelo con Require all granted
:
<VirtualHost *:443>
ServerName my-staging.sjf.edu
DocumentRoot /var/www/sjf/my
<Directory "/var/www/sjf/my">
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Location />
AuthType shibboleth
ShibRequestSetting requireSession 1
<RequireAny>
Require env allowed
require shib-session
</RequireAny>
</Location>
<Location /sitemap.xml>
Require all granted
</Location>
<VirtualHost *:443>