2011-10-06 18 views
9

हाँ, मैं जानता हूँ कि इस सवाल का 1000 बार से पहले कहा गया है ... यहाँ अंतर नहीं है ...(फिर भी एक और) .htaccess में पुनर्लेखन के माध्यम से www को हटाने का सुंदर तरीका?

मैं "www" जोड़ने के लिए StackOverflow पर इस जवाब मिला: use htaccess to add www with https support

RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

और यह सबसे सुंदर और सुंदर समाधान मैंने कभी देखा है है:

  • यह काम करता है
  • यह परिवर्तित करने की आवश्यकता नहीं है के रूप में के लिए प्रयोग की जाने वाली pecific डोमेन
  • यह दोनों HTTP और HTTPS कनेक्शन
  • इसका एकमात्र 3 लाइनों

तो, मेरे सवाल का सरल है संबोधित करते हैं। क्या कोई मुझे इस दिशा को विपरीत दिशा में काम करने में मदद कर सकता है? (वेब पते से WWW को हटाने और सभी उपरोक्त बिंदुओं को संबोधित करने के लिए)?

मेरा मानना ​​है कि उपर्युक्त (और आशा से नीचे) समाधानों के बीच, हमारे पास www उन सभी पर शासन करने के लिए पुनर्लेखन होगा!

उत्तर

11
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%2://%1%{REQUEST_URI} [L,R=301] 

ड्रुपल 7 .htaccess फ़ाइल से लिया, एक आकर्षण की तरह काम करता है। Https चेक जोड़ने के लिए थोड़ा अपडेट किया गया।

+0

हाँ! उत्तम! धन्यवाद!! :) – ethanpil

2

मैं ऊपर जवाब के साथ समस्या है, यह करने के लिए http://http:///

तो मैं कुछ परिवर्तन किया था रीडायरेक्ट करने के लिए शुरू कर दिया और इस कोड को जो http://example.comके लिए मेरे लिए काम किया (apache2 उबंटू सर्वर, VPS सर्वर पर) http://www.example.com से पुनर्निर्देशित करना होता है (www से www www) और http://example.com से https://example.com(http से https)

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

@bummi उत्तर संपादन के लिए धन्यवाद। गलती से मैंने असली यूआरएल रखा है। मैं अगली बार मानकों का पालन करूंगा। –

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