2014-04-07 10 views
8

के आधार पर सर्वर अलग-अलग फ़ाइल मैं क्लाउडफ्रंट और एस 3 पर मिडलमैन के साथ उत्पन्न एक स्थिर वेबसाइट होस्ट कर रहा हूं। मैं कई भाषा समर्थन जोड़ना चाहता हूं और मध्यस्थ मुझे सामग्री को स्थानीयकृत करने और उदाहरण के लिए /index.html पर अंग्रेजी संस्करण/अनुवादित सामग्री /sp/index.html पर अनुमति देता है।क्लाउडफ़्रंट/एस 3: अनुरोध शीर्षलेख

मैं अनुरोध में "स्वीकृति-भाषा" शीर्षलेख का पता लगाने और उस सर्वर के आधार पर /index.html या /sp/index.html पर आधारित होना चाहता हूं।

मेरे शोध के आधार पर मैं इसे एस 3 और क्लाउडफ़्रंट के साथ करने का कोई तरीका नहीं देख सकता, लेकिन शायद आपके पास कोई विचार है?

यदि क्लाउडफ्रंट और एस 3 के साथ ऐसा करने का कोई "उचित और अच्छा तरीका" नहीं है, तो अगला सबसे अच्छा विकल्प क्या होगा? वर्तमान में मैं जावास्क्रिप्ट में भाषा का पता लगाने और फिर भाषा को अंग्रेजी में रीडायरेक्ट करने के बारे में सोच रहा हूं।

नमस्ते, किम

+0

आप बाल्टी के सामने प्रॉक्सी सर्वर सेट कर सकते हैं और फिर से लिखने की स्थिति जोड़ सकते हैं –

उत्तर

2

टिप्पणी में उल्लेख किया है आप पंच कि अनुरोध हेडर पढ़ सकते हैं और या तो रीडायरेक्ट या गतिशील सामग्री की सेवा के कुछ प्रकार की आवश्यकता होगी। एस 3 समस्या है।

क्लाउडफ्रंट forward the Accept-Language header to your origin server कर सकते हैं, और यह सुनिश्चित कर सकते हैं कि सामग्री केवल प्रति-भाषा कैश्ड है। तो वह हिस्सा एक समस्या नहीं है।

यदि एस 3 आपकी उत्पत्ति है, तो आपको एक समस्या है क्योंकि आपकी फ़ाइलें स्थैतिक हैं और भाषा की जानकारी के साथ आने वाले अनुरोध को संसाधित करने में असमर्थ हैं। मैं जावास्क्रिप्ट के साथ भाषा का पता लगाने की कोशिश करने की सिफारिश नहीं करता। It's problematic

हालांकि क्लाउडफ्रंट को एकाधिक उत्पत्ति (एक प्रति भाषा, आपके मामले में) के साथ कॉन्फ़िगर किया जा सकता है, यह अनुरोध हेडर के आधार पर इन्हें आगे नहीं भेज सकता है। वर्तमान में "व्यवहार" केवल यूआरएल पथ से मेल खा सकते हैं। मुझे संदेह है कि वे किसी बिंदु पर हेडर नियम पेश कर सकते हैं, लेकिन जब तक वे ऐसा नहीं करते हैं (या जब तक कि आप एक और सीडीएन नहीं पाते हैं) मुझे डर है कि मेरा जवाब "आप नहीं कर सकते" जवाब देने जा रहा है।

अपनी साइट सभी फ्लैट HTML है के रूप में, मुझे लगता है कि आप एक जटिल समाधान है कि विभिन्न CloudFront व्यवहार और गतिशील सर्वर लिपियों, आदि शामिल हैं में कोई दिलचस्पी नहीं कर रहे हैं ..

मुझे लगता है कि अब तक अपने सबसे अच्छे विकल्प के लिए एक सरल है , कम तकनीक वाला एक -

विज़िटर को भाषा का एक विकल्प प्रदान करें और उन्हें किसी भी पृष्ठ से भाषा स्विच करने दें। यह आश्चर्य से बचाता है - अगर मैं अंग्रेजी में कुछ Google करता हूं, लेकिन मैं स्पैनिश बोलता हूं तो मुझे अंग्रेजी पेज देखना चाहिए जिसे मैं गुगल करता हूं और फिर मुझे ऐसा लगता है तो स्पेनिश में स्विच करें।

संबंधित मुद्दे