Apache2 - mod_rewrite: RequestHeader и переменные среды

Вы попытались использовать PulseAudio? При использовании модуля 'bluetooth-устройства модуля' он позволяет переключать режимы на лету любой с pactl (утилита командной строки) или pavucontrol (регулятор громкости / приложение для микшера). Строка, чтобы вставить Вашу конфигурацию или передать pactl (для A2DP):

load-module module-bluetooth-device profile=a2dp channels=2 address=YO:UR:BT:AD:DR:ES name=<your_headphones_name>

Затем можно использовать:

pactl set-card-profile bluez_card.<your_headphones_name> hsp

установить их на режим SCO. Однако pavucontrol имеет намного более хороший интерфейс, где Вы используете выпадающее меню. Это работает замечательно на меня, и можно использовать модуль 'объединения модуля', чтобы заставить звуковой вывод перейти к динамикам и к наушникам. Кроме того, могло бы быть возможно загрузить модуль bluetooth-устройства модуля дважды, однажды с каждым профилем, но я не попробовал это.

1
задан 4 August 2009 в 17:22
3 ответа

Похоже, что Вы сделали, чтобы '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

1
ответ дан 4 December 2019 в 02:27
  • 1
    Вы понимаете вопрос правильно, но решение, кажется, не работает. % {АВТОРИЗАЦИЯ} переменная все еще не установлен. –  Guillaume 5 August 2009 в 10:28
  • 2
    Можете Вы пробовать некоторые вещи проверить для наблюдения, какова проблема. mod_headers документы предлагают это " RequestHeader добавляют Авторизацию %Authorization" мог бы работать. Можете Вы пытаться добавить фиксированный заголовок для проверки этого it' s получение этого далеко в конфигурации. Что-то как " RequestHeader добавляют DebugHeader DebugValue" и проверка, которая проходит. –  CK. 5 August 2009 в 13:36

Я подозреваю Вас, любой не может переопределить Authorization заголовок или что это исказило позже в процессе запроса. Поскольку я уверен, что Вы знаете, Authorization: используется для Базовой аутентификации HTTP, таким образом, существует хороший шанс, что что-то еще надувает ее. Можно ли использовать по-другому названный заголовок?

0
ответ дан 4 December 2019 в 02:27

Есть ли причина, по которой вы используете для этого mod_rewrite , а не mod_setenvif ?

http://httpd.apache.org/ docs / current / mod / mod_setenvif.html # setenvif

0
ответ дан 4 December 2019 в 02:27

Теги

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