से कस्टम ग्लोबल कैसे सेट करें .htaccess
के भीतर से एक कस्टम चर सेट करने का कोई तरीका है ताकि प्रत्येक php स्क्रिप्ट तब से पढ़ा जा सके? मैं कुछ भी नहीं घूम रहा था।.htaccess
धन्यवाद!
print $_SERVER["MYVAR"];
तो, नहीं वास्तव में एक वैश्विक चर:
से कस्टम ग्लोबल कैसे सेट करें .htaccess
के भीतर से एक कस्टम चर सेट करने का कोई तरीका है ताकि प्रत्येक php स्क्रिप्ट तब से पढ़ा जा सके? मैं कुछ भी नहीं घूम रहा था।.htaccess
धन्यवाद!
print $_SERVER["MYVAR"];
तो, नहीं वास्तव में एक वैश्विक चर:
आप केवल .htaccess से एक वातावरण चर सेट कर सकते हैं:
SetEnv MYVAR whatever
और यह $_SERVER
सरणी में उपलब्ध हो जाता है। लेकिन अभी भी कुछ उद्देश्यों के लिए उपयोगी है।
(दूसरा विकल्प एक auto_prepend_file
चर पूर्व परिभाषित करने के लिए की घोषणा की जाती है। लेकिन वह अधिक एक समाधान तो है।)
कैसे mod_setenvif की तरह कुछ का उपयोग कर के बारे में? अतिरिक्त विवरण http://httpd.apache.org/docs/current/env.html पर उपलब्ध हैं।
आप .htaccess
(या http.conf
) में वातावरण चर सेट कर सकते हैं:
SetEnv foo bar
और इस वसीयत के माध्यम से
$_ENV['foo']
PHP में उन तक पहुँचने आप $ _GET सरणी से चर सुलभ चाहते हैं (प्राप्त करने के माध्यम से सर्वर पर भेजे जा रहे किसी भी चर को ओवरराइट करें)
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)$ $1?%1&myvar=something
% 1
आप असीमित पाश को रोकने के लिए 'रीवाइटकंड% {QUERY_STRING}! Myvar' जोड़ना चाहेंगे। – Gerben
मैं वातावरण चर का उपयोग कर रहा मुझे बताने की क्या "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]
देखें कि ई = BadQueryString? मैंने कहा कि। पाठ्यक्रम का वाक्यविन्यास सटीक होना चाहिए।
से निपटने 403 के लिए मेरे पीएचपी कार्यक्रम मेंतब: अनुमति अस्वीकृत त्रुटियों, मैं इसे इस तरह से (वातावरण चर नाम के इस सर्वर पहले जोड़ता है "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 मैंने कुछ नया सीखा। .htaccess फ़ाइल से पर्यावरण चर सेट करने के लिए यह कितना अच्छा अभ्यास है? – Josh
मैं ज्यादातर संसाधन/पथ नाम घोषित करने के लिए इसका उपयोग कर रहा हूं। लेकिन अंत में कुछ भी जिसे वैश्विक साइट सेटिंग माना जा सकता है ठीक है। – mario
धन्यवाद, मारियो। मैं अंतर्दृष्टि की सराहना करता हूं। – Josh