Для среды dev Мой DocumentRoot в apache указывает на/var/www. Эта папка содержит следующую структуру:Mod_rewrite для конкретного базового подкаталога auth пользователя
/var/www/username1/projectname/
/var/www/username2/projectname/
/var/www/username3/projectname/
Использование .htaccess/.htpasswd кому-то необходимо войти в систему с помощью базовой аутентификации. Когда пользователь войдет в систему, он будет перемещен в /var/www/[hisorherusername]/[projectname]/
. Используя этот метод, каждый разработчик должен указывать на свой собственный код, сохраняя при этом тот же субдомен.
Например, когда username1 посещает projectname.dev.mycompany.com. Затем этому пользователю будет показан код в/var/www/username1/projectname /.
Я хочу предотвратить использование динамических виртуальных хостов, используя разные поддомены для каждого пользователя. Обычно это происходит при использовании CMS.
Я прошел долгий путь, но застрял в использовании правил перезаписи. Это то, что у меня есть сейчас:
AuthType Basic
AuthName "The DEV"
AuthUserFile /var/www/.htpasswd
Require valid-user
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([^\.]+).dev.company.com$
RewriteRule ^(.+)$ /%{REMOTE_USER}/%1/html/$1
Это приводит к бесконечному потоку внутренних переадресаций. Когда я изменяю последнее правило перезаписи на ^$
вместо^(. +) $, Он отлично работает для корневого URL-адреса, но не для всех других URL-адресов. Они будут переписаны вместо/var/www/$ 1. Я попробовал добавить условие, чтобы проверить, нет ли мы в /% {REMOTE_USER}, но это, похоже, не решает ничего.
Я вижу, что происходит, но я не вижу решения. Мне нравится препятствовать добавлению в подкаталоги другого правила .htaccess, так как это следует объединить вместе с файлами .htaccess самих проектов.