2012-04-10 12 views
5

के माध्यम से एसएसएल मजबूर यहाँ कुछ सवाल मैं एसएसएल के बारे में हैं।htaccess

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} somefolder 
RewriteRule ^(.*)$ https://www.domain.com/somefolder/$1 [R,L] 
  1. ऊपर htaccess के माध्यम से एसएसएल पर जाने के लिए सब कुछ के लिए मजबूर करने का कोड है। क्या कोई तरीका है कि मैं इस कोड को एक विशिष्ट आईपी पते पर सीमित कर सकता हूं। मैं सिर्फ अपने आईपी पते के लिए एसएसएल को मजबूर करना चाहता हूं ताकि मैं नए एसएसएल लिंक का उपयोग करके साइट का पूरी तरह से परीक्षण कर सकूं, और देखें (सुनिश्चित करें) सब कुछ लाइव साइट पर लाइव करने से पहले काम कर रहा है। सिर्फ मेरे आईपी के साथ परीक्षण करना बहुत आसान होगा।

  2. एसएसएल के साथ किसी भी/पोस्ट प्राप्त हस्तक्षेप करने वाला है? मतलब ... अगर मुझे लगता है कि कोड के ऊपर का उपयोग करें, और किसी को एक page..and वे कोई फ़ॉर्म सबमिट पर है, यह उन्हें एसएसएल में मजबूर करने के लिए जा रहा है, कि एक रीडायरेक्ट पर विचार किया जा रहा है और किसी भी पोस्ट/चर मिल को साफ ? मैं सिर्फ समय से बाहर निकलने की कोशिश करना चाहता हूं अगर यह मेरे द्वारा चलाए जा रहे कुछ भी गड़बड़ कर रहा है।

  3. आप में से किसी को किसी भी स्थितियों में, जहां आप एसएसएल मजबूर तो साइट सही काम नहीं कर रहा के साथ मुद्दों का एक बहुत कुछ था था?

+1

1) आईपी पते से मेल खाने के लिए एक और रिवाइटकंड लाइन और '% {REMOTE_ADDR}' चर का उपयोग करें; 2) यह रीडायरेक्ट है - यह पोस्ट डेटा के साथ गड़बड़ होगा (लेकिन जीईटी के साथ नहीं); 3) यह सब कुछ है कि आप अपनी साइट को कैसे डिज़ाइन करते हैं - यदि आपने सभी को अपनी तरफ से ठीक किया है (जहां आवश्यक हो वहां उपयोग किए गए HTTPS लिंक) लेकिन कोई भी अभी भी HTTP का मैन्युअल रूप से उपयोग करने का प्रयास कर रहा है (विशेष रूप से जब POST का उपयोग करते हैं - उदाहरण फ़ॉर्म सबमिट करते हैं), तो बस फेंक दें एक त्रुटि (वह इसे उद्देश्य पर करता है, इसलिए यह अपनी समस्या है)। – LazyOne

+0

Btw - जहां इस साइट तैनात किया जाएगा आदि पर निर्भर करता है - 'RewriteCond% {HTTPS} आप उपयोग कर सकते हैं बंद = [एनसी]' बजाय पोर्ट संख्या की जाँच, जैसा कि आप आसानी से विभिन्न गैर मानक पोर्ट पर वेबसाइट रख सकते हैं की (जैसे 8080 आदि)। – LazyOne

उत्तर

2

क्या आप वाकई अपनी साइट HTTPS के साथ अच्छी तरह से काम करता है, सादा HTTP बंद कर देते हैं बनाना चाहते हैं (यह मानते हुए यह पूरे सर्वर के लिए है), या (.htaccess में या मुख्य विन्यास में) अपाचे httpd निर्देशों का उपयोग करें कि पृष्ठों बनाने जिसे HTTPS पर सेवा करने की आवश्यकता है, एक त्रुटि (उदाहरण के लिए 404) लौटाते हैं जब उन्हें सादे HTTP पर पहुंचाया जाता है। Deny from xxxxxxx का उपयोग करके आप इसे एक विशिष्ट आईपी पते के लिए प्राप्त कर सकते हैं।

उनके HTTPS बराबर करने के लिए सादे HTTP अनुरोध रीडायरेक्ट करने के लिए mod_rewrite या इसी तरह की पर भरोसा न करें। यह सबसे अच्छी तरह से समस्याओं को छिपाने और सुरक्षा की झूठी भावना का कारण बन जाएगा।

इसका कारण यह है कि, रीडायरेक्ट के साथ भी, प्रारंभिक अनुरोध पुनर्निर्देशित होने से पहले स्पष्ट किए गए हैं: सुनिश्चित करें कि सभी संदर्भ https:// यूआरआई का उपयोग करने से पहले उपयोग करते हैं। आप this answer में अधिक जानकारी प्राप्त कर सकते हैं।

+0

बहुत अच्छा, धन्यवाद। अंत में मैं कोर यूआरएल को https में बदलकर काम कर रहा हूं। एक बार एचटीटीपीएस में वे उस प्रोटोकॉल में रहे। तो लॉगिन पर, मैंने बस यह सुनिश्चित किया कि फॉर्म एचटीटीपीएस की ओर इशारा किया गया था, और वे बाकी साइट पर इस तरह से रहे। यह एक व्यवस्थापक पैनल था इसलिए HTTP को मजबूर करने की कोई आवश्यकता नहीं थी ... लेकिन जिस तरीके से आपने इसे समझाया, वह अच्छी तरह से काम करता था। धन्यवाद। – Ninjakreborn