Что случилось с моим VirtualHost?

Похоже, что Вы сделали, чтобы 'L' (продлился) флаг на первом правиле. Обработка правила остановится там, и больше перезаписи не произойдет. Я не думаю, что второе правило будет когда-либо достигаться. Попытайтесь удалить флаг 'L'.

Править

О, и Вы сделали, чтобы 'P' (проксировал) набор флага, также. Это также остановится, переписывают обработку правила в той точке и вызывают запрос прокси через mod_proxy.

Можно ли сделать все это в одном правиле, поскольку соответствие шаблона является тем же. Я не абсолютно уверен, что Вы после, но это могло бы сделать это:

RewriteRule ^/(.*)&authorization=@(.*)@(.*) http://<ip>:<port>/$1&authorization=@$2@$3 [E=AUTHORIZATION:$2,NE,L,P]

Обновление

Ага, я думаю, что вижу то, что Вы пытаетесь сделать теперь. Как только Вы указываете [P] во флагах, запрос прокси происходит в той точке. Если я считал вопрос правильно, Вы хотите var АВТОРИЗАЦИИ, переданный в к тому запросу, таким образом, необходимо будет вставить это перед [P]:

# if the query string includes the authorization parameter
RewriteCond %{QUERY_STRING} ^(.*)authorization=@(.*)@(.*)$
RewriteRule ^/(.*) - [E=AUTHORIZATION:%2]
# add the value of AUTHORIZATION  in the header
RequestHeader add "Authorization" "%{AUTHORIZATION}e"
# keep the value of the parameter in the AUTHORIZATION variable and redirect
RewriteRule ^/(.*) http://<ip>:<port>/ [NE,L,P]

Полностью непротестированный, но должен сделать то, что Вы хотите - если я понимаю вопрос правильно.

Обновление конфигурации Apache

Вам устанавливали AllowOverride FileInfo для того каталога в httpd.conf? В противном случае затем Вы не сможете использовать RequestHeader в .htaccess

4
задан 15 April 2010 в 21:49
3 ответа

Поскольку можно читать во Всестороннем Обсуждении Виртуального Хоста, Соответствующего:

Первый vhost в этом списке (первый vhost в файле конфигурации с указанным IP-адресом) имеет самый высокий приоритет и ловит любой запрос к неизвестному имени сервера или запрос без Хоста: поле заголовка.

Ваш Apache httpd загружает и оценивает файл /etc/apache2/sites-available/ccbbbcc прежде /etc/apache2/sites-available/default.

Переименовать /etc/apache2/sites-available/default например, к /etc/apache2/sites-available/00_default и /etc/apache2/sites-available/ccbbbcc кому: /etc/apache2/sites-available/01_ccbbbcc, так, чтобы файл по умолчанию был загружен сначала.

8
ответ дан 3 December 2019 в 02:39

У Вас есть директива NameVirtualHost?

Посмотрите здесь: http://httpd.apache.org/docs/2.0/mod/core.html#namevirtualhost

В основном, если у Вас нет NameVirtualHost *, или определенная директива NameVirtualHost 1.1.1.1:80, виртуальный хост не Основан на имени, это - базирующийся address:port.

1
ответ дан 3 December 2019 в 02:39
  • 1
    У меня есть NameVirtualHost 1.1.1.1:80, Слушают 80, Слушают 443 в моем ports.conf –  John 15 April 2010 в 19:20
  • 2
    Как находятся Ваши символьные ссылки в настроенном поддерживающем сайты? Они получены в алфавитном порядке, и я не уверен, но Apache может принять значение по умолчанию к первой директиве VirtualHost для host:port комбинации. –  Kyle Smith 15 April 2010 в 19:23
  • 3
    I' m don' t понимают символьные ссылки. Как я проверяю? Кроме того, я думаю, что заметил алфавитное упорядочивание имен файлов VirtualHost, влияющих, какая host:port комбинация выбрана. Но shouldn' t свойство ServerName делают более конкретный/фильтрующий выбор? –  John 15 April 2010 в 19:28

Без блока ServerName/ServerAlias в Ваших виртуальных хостах апач будет служить домену, который сначала инстанцируют во время чтения конфигурации. В этом случае, в алфавитном порядке, файл конфигурации ccbbbccc.com должен появиться перед значением по умолчанию.

Включите директивы ServerName и/или ServerAlias/etc/apache2/sites-enabled/default, и Вы должны быть установлены.

1
ответ дан 3 December 2019 в 02:39
  • 1
    Спасибо, я сделал это, но все еще никакой эффект. Я заметил это под/etc/apache2/sites-enabled/there' s файл, названный с 000 значениями по умолчанию. По-видимому апачский автоматически переименовывает мое значение по умолчанию к с 000 значениями по умолчанию, чтобы гарантировать, что оно загружается сначала. –  John 15 April 2010 в 20:41
  • 2
    можете Вы отправлять результаты:/usr/sbin/apache2-S –   17 April 2010 в 23:22
  • 3
    Хм... Я получаю " apache2: плохой $ имени пользователя {APACHE_RUN_USER} ". что это означает? –  John 18 April 2010 в 19:28
  • 4
    Вы устанавливали апача от пакета? или скомпилируйте его сами? После внесения изменений конфигурации Вы останавливаете апача, PS ax|grep апач, удостоверьтесь, что он останавливается, затем перезапуская его? в Вашем файле конфигурации Пользователь должен соответствовать значению, есть ли имя пользователя в Вашей системе, которая соответствует? –   19 April 2010 в 02:31

Теги

Похожие вопросы