2013-11-04 49 views

回答

1

閱讀回答:https://serverfault.com/questions/136428/header-set-access-control-allow-origin-not-working-with-mod-rewrite-mod-jk

看來解決辦法是:

SetEnvIf Origin "http(s)?://(domaine1\.com|domain2\.com)$" AccessControlAllowOrigin=$0 
Header always set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin 

但是這與.htaccess無關,您可以將這些行放在常規的apache配置文件(虛擬主機?)中,而不使用不好 .htaccess動態配置文件。

頁眉指令的值部分是:

值可以是一個字符串,字符串包含格式說明或兩者

的組合,但唯一可用的格式說明是%% (針對%),針對時間戳的%t,針對環境變量的%D(同上),%{foo}e%{foo}s

SetenvIf是一個很好的apache工具來讀取請求標題,在這裏閱讀Origin標題。然後,使用環境變量是在Apache中編寫複雜事物的經典方式(我的意思是存儲某種變量的方式)。

所以我不知道你爲什麼想要另一種解決方案。

0

如果沒有SetEnvIf,我找不到這樣做,除了複製不同的頭文件可以用下面的方法完成,我是這樣做的ReverseProxy的一部分(因此使用RequestHeader而不是Header),但是兩者似乎是可以互換的

###This reads the value of OldHeader into TempValue 
SetEnvIf OldHeader ".+" TempValue=$0 

###This will overwrite the value of "NewHeader" if it was already set 
RequestHeader set NewHeader %{TempValue}e env=TempValue 

###Optionally remove the original 
RequestHeader unset OldHeader