У меня есть две папки, F1 и F2, в моей общей папке, в каждой из которых есть файл .htaccess. F1 защищен базовой аутентификацией в .htaccess, например:
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /home/myaccount/.htpasswd
AuthGroupFile /dev/null
require valid-user
Я переписываю URL-адрес из F2 в F1, например:
RewriteRule ^f2file\.php$ ../F1/f1file.php [NC,L]
Эта перезапись работает, но мне бросается в глаза базовая авторизация, которую я установил в F1. Есть ли способ отправить базовые учетные данные для аутентификации при перезаписи или обойти базовую аутентификацию при перезаписи из локальной папки?
Я пробовал установить переменную среды, как в этот вопрос:
SetEnvIf Request_URI ^f2file\.php$ ADD_BASIC_AUTH
RequestHeader set Authorization "Basic XXXXXXXX" env=ADD_BASIC_AUTH
Где XXXXXXXX - значение user: pass в кодировке base 64, как описано в вопросе выше. Но это не работает, у меня все еще возникают проблемы с учетными данными, может быть, потому, что я не выполняю перезапись в качестве прокси? Любые идеи? Спасибо!
Поскольку папка F1 защищена паролем, для доступа ко всему, к чему осуществляется доступ непосредственно в этой папке, требуется пароль. Возможно, вы могли бы использовать символическую ссылку из папки F2 на файл, необходимый в папке F1. Тогда клиенты будут обращаться к файлу по F2 вместо F1, и пароль не потребуется.
ln -s ../F1/f1file.php f2file.php