2012-10-09 11 views
28

मैंने पहले कभी प्रॉक्सी स्थापित नहीं किया है। मैं साझा होस्टिंग का उपयोग कर रहा हूं, इसलिए अपाचे निर्देश सेट करने के लिए, मुझे .htaccess का उपयोग करने की आवश्यकता है। क्या मैं नीचे कुछ ऐसा करने के लिए .htaccess का उपयोग कर सकता हूं? कोई सीमाएं?क्या ProxyPass और ProxyPassReverse htaccess में काम कर सकते हैं?

ProxyRequests Off 
ProxyPass /img/ http://internal.example.com/img/ 
ProxyPass /app/ http://internal.example.com/app/ 

ProxyPassReverse/http://internal.example.com/ 

उत्तर

33

You cannot use a ProxyPass in an htaccess file

प्रसंग:: प्रलेखन यह संदर्भ में लागू है का कहना है कि सर्वर config, आभासी मेजबान, निर्देशिका

जो इनको शामिल नहीं (आप इनको में एक <Directory> ब्लॉक नहीं कर सकते हैं)। हालांकि, रीडायरेक्ट के कारण प्रॉक्सी किए गए अनुरोधों के स्थान फ़ील्ड को आंतरिक रूप से फिर से लिखने के लिए ProxyPassReverse का उपयोग कर सकते हैं। आपको ProxyPass की बजाय प्रॉक्सी में mod_rewrite के P ध्वज का उपयोग करने की आवश्यकता होगी। तो कुछ की तरह:

RewriteEngine On 
RewriteRule ^/?img/(.*)$ http://internal.example.com/img/$1 [L,P] 
RewriteRule ^/?app/(.*)$ http://internal.example.com/app/$1 [L,P] 

ProxyPassReverse/http://internal.example.com/ 

बस स्पष्ट होने के लिए आपको ProxyPassयाProxyPassReverse htaccess फ़ाइल में उपयोग नहीं कर सकते, लेकिन आप कर सकते हैं mod_rewrite नियम है कि P ध्वज का उपयोग के साथ प्रयोग के ProxyPassReverse

+0

शानदार! इससे मुझे वास्तव में समझने में मदद मिली। धन्यवाद! –

+18

आप htaccess में 'ProxyPassReverse' का उपयोग नहीं कर सकते हैं (http://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypassreverse) –

+0

यह काम करता है, लेकिन जब मैं आंतरिक पृष्ठों में से किसी एक पर परिवर्तन करता हूं और पुनः लोड करें मैं ब्राउजर पर कैश साफ़ करने के बाद भी आंतरिक सर्वर को मारता नहीं देखता हूं। यह सुझाव देता है कि सर्वर पर कुछ कैश किया जा रहा है, लेकिन इसे कैसे बदला जाए? – Michael