回答
您只能從的.htaccess設置環境變量:
SetEnv MYVAR whatever
而且$_SERVER
陣列在此可用:
print $_SERVER["MYVAR"];
所以,不完全是一個全局變量。但對於某些目的仍然有用。
(另一個選擇是聲明一個auto_prepend_file
預先定義的變量。但是,這更多的是解決辦法呢。)
如何使用類似mod_setenvif?其他詳細信息請見http://httpd.apache.org/docs/current/env.html。
可以在.htaccess
(或http.conf
)設置環境變量:
SetEnv foo bar
,如果你想從$ _GET數組變量訪問通過
$_ENV['foo']
訪問它們在PHP(這將覆蓋任何發送到服務器的變量,通過獲取)
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)$ $1?%1&myvar=something
%1無論
您可能想在前面添加'RewriteCond%{QUERY_STRING}!myvar'以防止無限循環。 – Gerben 2012-01-09 18:11:24
我使用環境變量來告訴我是什麼「5G黑名單」防火牆腳本http://perishablepress.com/5g-blacklist-2013/的一部分是由一個卑鄙小人
例如,防火牆的一部分觸發的查詢字符串可能停止最常見的垃圾郵件發送者查詢字符串:
RewriteBase/
RewriteCond %{QUERY_STRING} (\"|%22).*(<|>|%3) [NC,OR]
RewriteCond %{QUERY_STRING} (javascript:).*(\;) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3) [NC,OR]
RewriteCond %{QUERY_STRING} (\\|\.\./|`|=\'$|=%27$) [NC,OR]
RewriteCond %{QUERY_STRING} (\;|\'|\"|%22).*(union|select|insert|drop|update|md5|benchmark|or|and|if) [NC,OR]
RewriteCond %{QUERY_STRING} (base64_encode|localhost|mosconfig) [NC,OR]
RewriteCond %{QUERY_STRING} (boot\.ini|echo.*kae|etc/passwd) [NC,OR]
RewriteCond %{QUERY_STRING} (GLOBALS|REQUEST)(=|\[|%) [NC]
RewriteRule .* - [E=BadQueryString,F]
請參閱E = BadQueryString?我補充說。當然語法必須精確。
然後在我處理403 PHP程序:權限被拒絕的錯誤,我用這種方式(注意這臺服務器的預規劃「REDIRECT_」環境變量名):
if (getenv("REDIRECT_BadQueryString") !== FALSE) {
$htaccessErrors .= ' BadQueryString';
if (getenv("REDIRECT_QUERY_STRING") !== FALSE) {
$htaccessErrors .= getenv("REDIRECT_QUERY_STRING");
}
}
這裏是另一個例子的.htaccess ,測試用戶代理服務器變量並使用環境變量(如果已設置),然後環境變量可用於我的403.php
SetEnvIfNoCase User-Agent (binlar|casper|cmsworldmap|comodo|diavol|dotbot|feedfinder|flicky|ia_archiver|kmccrew|nutch|planetwork|purebot|pycurl|skygrid|sucker|turnit|vikspider|zmeu) BadUserAgent
<limit GET POST PUT>
Order Allow,Deny
Allow from all
Deny from env=BadUserAgent
</limit>
- 1. jboss中的全局自定義設置
- 2. 如何定義全局自定義RoutedCommand?
- 3. 如何在App.xaml中設置全局自定義字體
- 4. 如何在Angular2中設置全局自定義標題?
- 5. 如何根據設備設置自定義環境變量(htaccess)?
- 6. 全局AJAX設置不在自定義模式下觸發
- 7. 在自定義類中設置全局變量的默認值?
- 8. 如何設置全局區域設置?
- 9. 自定義全局熱鍵
- 10. 如何爲TypeScript配置自定義全局接口(.d.ts文件)?
- 11. mysql自定義全局定義變量
- 12. Android DialogueFragment設置自定義佈局
- 13. .htaccess - 如何根據environement變量設置自定義標題?
- 14. 如何在* .tag自定義標籤中爲pageEncoding設置全局指令?
- 15. 如何讓用戶在銀色條紋CMS中設置自定義全局值?
- 16. playframework設置自定義消息全球
- 17. 如何從Trac中的全局配置中刪除自定義票據字段?
- 18. 如何設置ListFragment自定義佈局的分隔符(爲空)
- 19. 自定義視圖:如何設置根佈局
- 20. 我如何設置我的自定義佈局DraggableGridView
- 21. 如何在Sinatra中爲佈局設置自定義目錄?
- 22. 如何設置自定義列表視圖的佈局?
- 23. 如何在Ios中爲UICollectionView設置自定義佈局
- 24. 如何在自定義導航抽屜上設置佈局
- 25. Liferay 6 - 如何設置默認的自定義佈局?
- 26. android - 如何在Android 3.0中設置PreferenceActivity的自定義佈局?
- 27. 如何設置Parsley.js全局配置
- 28. 如何從另一個自定義XML佈局引用自定義XML佈局?
- 29. 如何自動設置自定義電子郵件設置
- 30. 如何在全局設置模塊中設置Django中的特定設置
+1我學到了一些新東西。在什麼情況下從.htaccess文件設置環境變量是一種好的做法? – Josh 2012-01-08 20:57:38
我主要使用這個來聲明資源/路徑名。但最終,任何可以被認爲是全球網站設置的東西都可以。 – mario 2012-01-08 21:07:58
謝謝,馬里奧。我很欣賞這種見解。 – Josh 2012-01-08 21:10:39