Zaten yoksa üstbilgiyi apache'de ayarla


13

Bazı üstbilgileri enjekte eden bir proxy var ama ben zaten mevcut değilse sadece üstbilgileri ayarlar böylece değiştirmek istiyorum:

<Location /api>    
    RequestHeader set MY_HEADER "value"

    ProxyPass http://127.0.0.1:8000/api
    ProxypassReverse http://127.0.0.1:8000/api
</Location>

Mümkün mü?

Yanıtlar:


5

Apache 2.4.7, x86_64, Ubuntu 14.04 LTS'de

Bunun işe yaradığını gördüm

RequestHeader setIfEmpty X-Forwarded-For "127.0.0.1"

gün boyu çalışır. Ancak, bir kişi dinamik bir değer kullanmaya çalışırsa,

RequestHeader setIfEmpty X-Forwarded-For "%{REMOTE_ADDR}e"

çalışmıyor. Değeri hasat için mod_rewrite yardımına ihtiyacınız olduğunu buldum. Yapılandırmam şimdi böyle görünüyor ve çalışıyor.

RewriteRule . - [E=noxff:%{REMOTE_ADDR}] RequestHeader setIfEmpty X-Forwarded-For "%{noxff}e"

Bunun aptal olduğunu biliyorum, ama işe yarıyor.


7

Nasıl bir şey hakkında:

RequestHeader set X-My-Header "value" expr="req('X-My-Header')==''"

Consult http://httpd.apache.org/docs/current/expr.html expr = sözdizimi hakkında daha fazla bilgi için.

Düzenleme: Apache 2.2'de şunları yapabilmelisiniz:

SetEnvIf X-My-Header "" no_my_header
RequestHeader set X-My-Header "value" env=no_my_header

Apache 2.2.24'te bununla ilgili bazı sorunlar yaşıyorum. Sadece 2.4 bir şey mi?
Hobozilla

Apache 2.2'de görünmüyor.
Michael Hampton

Apache 2.2 için yukarıdaki düzenlemelerime bakın.
MLu

2
Bazı nedenlerden dolayı "" ifadesini normal bir ifade olarak beğenmez, ancak ^ $ hile yapmış gibiydi.
Hobozilla

4

Apache 2.4.7

Header setifempty Access-Control-Allow-Origin "*"

Aşağıdaki Apache 2.2.4

Header append Access-Control-Allow-Origin ""
Header edit Access-Control-Allow-Origin "^$" "*"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.