2010-09-03 16 views
7

में विभिन्न प्रोटोकॉल के लिए यूआरएल पुनर्लेखन। मुझे .htaccess में url-rewriting के साथ मदद की ज़रूरत है।.htaccess

तो समस्या विभिन्न प्रोटोकॉल के बारे में है: https और http। पुनर्लेखन का मुख्य उद्देश्य यूआरएल से "www" को हटाना है, लेकिन प्रोटोकॉल को वही रहना चाहिए जो पहले था।

उदाहरण के लिए, मैं जब http तरह यूआरएल: //www.domain.com/request, यह http पर पुनः निर्देशित किया जाना चाहिए: //domain.com/request। मैं इन नियमों के साथ इसे हल:

RewriteBase/
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

लेकिन मामले में, जब URL की तरह लग रहा https: //domain.com/: //www.domain.com/request इसे करने के लिए https पुनः निर्देशित किया जाना चाहिए निवेदन।

दुर्भाग्यवश, उपर्युक्त नियम वर्तमान प्रोटोकॉल पर ध्यान दिए बिना http पर रीडायरेक्ट करेगा।

अग्रिम धन्यवाद।

+0

संभव डुप्लिकेट [htaccess के लिए अनुप्रेषित गैर- www http और https दोनों] (http://stackoverflow.com/questions/2015159/htaccess-redirect-for-non -www-both-http-and-https) –

+0

लिंक के लिए धन्यवाद। मैंने खोज के दौरान इस सवाल को याद किया है। दुर्भाग्य से, यह exapmle काम नहीं करता है। यह http: // www.domain.com/request के बजाय https: // domain.com/request http: // www.domain.com/request पर रीडायरेक्ट करता है। – Alex

उत्तर

8

यह लिंक किए गए संभावित डुप्लिकेट के समान ही है, लेकिन चूंकि वह www को मजबूर करता है जहां आप इसे हटाना चाहते हैं, तो यह एक अलग उत्तर की गारंटी दे सकता है। इस तरह

कोशिश कुछ:

RewriteCond %{HTTP_HOST} ^www\. 
RewriteCond %{HTTPS}s ^on(s)|off 
RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$ 
RewriteRule^%1%3%{REQUEST_URI} [R=301,L] 
की
+2

उपर्युक्त नियमों का एक स्पष्टीकरण निश्चित रूप से बहुत उपयोगी होगा क्योंकि www के लिए गैर www पुनर्निर्देशन की तलाश करने वाले लोगों के संदर्भ में। –

+0

गंभीरता से, अपाचे एपीआई निर्माता ... क्यों न केवल 'HTTP_PROTOCOL' जैसे चर है, और दूसरा तर्क अन्य सभी की तरह समान पैटर्न का पालन करता है? 'रीवाइटकंड% {HTTP_PROTOCOL}^http $ 'या' रिवाइटकंड% {HTTP_PROTOCOL}^https $ 'नियम के अपवाद के बजाय? कम ज्ञान आवश्यकताओं बेहतर है। अतिरिक्त ज्ञान अच्छा है, लेकिन अतिरिक्त आवश्यक ज्ञान खराब है। और आपको सटीक वाक्यविन्यास और मूल्य पता होना चाहिए। '^ ऑन (एस) | ऑफ 'अनुमान लगाने वाला कौन है। पुराना PHP- संबंधित टूल्स ... – ahnbizcad

+0

शानदार उत्तर (www को पुनर्निर्देशित करने पर डिजिटलऑन दस्तावेज़ प्रलेखन की प्रशंसा करता है) हालांकि केस संवेदनशीलता '[एनसी]' के साथ अधिकतम संगतता के लिए रिवाइटकंड पर सेट किया जाना चाहिए https://stackoverflow.com/a/ 5582488/614616 – hozza