2017-10-10 26 views
3

我有下面的代碼,我可以使用下面的設置一個變量:獲取請求主機Apache htaccess的變量?

SetEnvIf Host (.*) custom_host=$1 

我要的是請求的主機/計算機的變量。

例如,如果網站http://example.com:32/welcome正在提出請求,我希望將此作爲變量?

回答

0

而不是Host您需要Referer來訪問請求中發送的HTTP Referer標頭。例如:

SetEnvIf Referer (.*) custom_referer=$1 

但是,根據您使用的服務器端腳本語言,您很少需要將此分配給另一個變量。您通常可以根據需要直接引用它。

另請注意,可能未設置HTTP Referer標頭。推介網站和用戶的瀏覽器都可以阻止這一點。

UPDATE:

我怎麼剛纔的協議,域名和主機不帶路徑。

嘗試改變正則表達式是這樣的:

SetEnvIf Referer ^(https?://[^/]+) custom_referer=$1 

如果Refererhttp://example.com:32/welcome,那麼這將導致剛剛http://example.com:32存儲在custom_referer變量。

+0

工作,但是我意識到CORS匹配失敗,因爲它有在那裏的路徑,我怎麼能沒有路徑的協議,域和主機。 –

+0

可以請你調整這個答案以刪除尾部斜線,那麼它應該工作 –