0

たとえば、URLが次のような場合、リモートホスト名から値を抽出してヘッダーに設定する必要があります-
http://data1-data2.server.com/someuri

上記の例から、data1 と data2 を抽出してヘッダーに設定する必要があります。つまり、X-HEADER1=data1 & X-HEADER2=data2 です。

最初に RewriteRule を試しましたが、サーバー名ではなくURIにのみ適用されることがわかりました

RewriteRule (?<=//)(.*)(?=-) - [E=INFO_REQUEST_CONTEXT_1:$1,NE]
RewriteRule (?<=-)(.*?)(?=[.]) - [E=INFO_REQUEST_CONTEXT_2:$1,NE]
RequestHeader set X-HEADER1 "%{INFO_REQUEST_CONTEXT_1}e"
RequestHeader set X-HEADER2 "%{INFO_REQUEST_CONTEXT_2}e"

使用するのに適切な構成は何ですか?

4

2 に答える 2

1

次の構成作業、

# Extract data1 from URL and set the header
SetEnvIf Host "(.*)(?=-)" var1=$1   
RequestHeader set X-HEADER1 %{var1}e env=var1
# Extract data2 from URL and set the header 
SetEnvIf Host "(?<=-)(.*?)(?=[.])" var2=$1  
RequestHeader set X-HEADER2 %{var2}e env=var2
于 2013-11-05T17:59:32.260 に答える
0

有効mod_rewriteにしmod_headersてからhttpd.conf(まだ有効になっていない場合)、次のコードをDOCUMENT_ROOT/.htaccessファイルに入れます。

RewriteEngine On

# capture REMOTE_HOST components in env variables
RewriteCond %{REMOTE_HOST} ^([^-]+)\.([^.]+)\.
RewriteRule ^ - [E=INFO_REQUEST_CONTEXT_1:%1,E=INFO_REQUEST_CONTEXT_2:%2,L]

## set custom response headers to be used in server side scripts
RequestHeader set X-HEADER1 "%{INFO_REQUEST_CONTEXT_1}e"
RequestHeader set X-HEADER2 "%{INFO_REQUEST_CONTEXT_2}e"

## set custom response headers    
Header always set X-HEADER1 "%{INFO_REQUEST_CONTEXT_1}e"
Header always set X-HEADER2 "%{INFO_REQUEST_CONTEXT_2}e"

mod_headers リファレンス

于 2013-10-28T10:20:18.910 に答える