В текущем проекте у нас есть отдельная разработка и производство. Код на обоих находится в одном репозитории SVN.
Проблема заключается в доступе к среде разработки извне. Допустим, у нас есть два отдельных сервера для prod и dev:
1.2.3.4 -> production
5.6.7.8 -> development
Идея состоит в том, чтобы использовать один и тот же .htaccess с Auth на обоих серверах, но поведение должно быть таким:
Это должно быть примерно так (псевдокод):
IF $SERVER_IP == 5.6.7.8 THEN
require_auth
ELSE
do_not_require_auth
Мы пытаемся достичь этого с помощью минимально возможного количества дополнительных модулей, но, к сожалению, мы не смогли найти никакой информации о том, как выполнить условие в .htaccess, на основе информации о сервере.
Это вообще возможно?
вы должны добавить их в свои директивы аутентификации / авторизации .htaccess.
setenvif Server_Addr=1.2.3.4 okpublic
allow from env=okpublic
require valid-user
satisfy any
если адрес сервера - 1.2.3.4, мы устанавливаем переменную среды, которую мы будем использовать во второй строке, чтобы разрешить доступ любому. если адрес сервера не 1.2.3.4, то пользователи должны пройти аутентификацию. если любое из этих 2 правил выполнено, то доступ предоставляется.
то, что я сделал, странно, ну да ладно, если это то, что ты хочешь :)
другое решение, гораздо более простое, - игнорировать файл .htaccess при обновлении svn на производственном сервере, используя svn propedit svn: ignore. если вам нужен другой файл .htaccess для prod и dev, то, возможно, вы захотите изучить ветвление, слияние и т. д., или, может быть, многоцелевой файл .htaccess просто лучше. Мне тоже хотелось упомянуть элементы управления svn.