गैर-www => www और विपरीत www => गैर-www दोनों के लिए पुनर्निर्देशन कोड। कोई हार्डकॉन्ग डोमेन और स्कीम .htaccess फ़ाइल में नहीं। इसलिए मूल डोमेन और http / https संस्करण संरक्षित किया जाएगा।
APACHE 2.4 और NEWER
गैर-डब्ल्यूडब्ल्यूडब्ल्यू => डब्ल्यूडब्ल्यूडब्ल्यू:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ %{REQUEST_SCHEME}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
WWW => NON-WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ %{REQUEST_SCHEME}://%1%{REQUEST_URI} [R=301,L]
नोट: Apache 2.2 पर काम नहीं कर रहा है जहाँ% {REQUEST_SCHEME} उपलब्ध नहीं है। Apache 2.2 के साथ संगतता के लिए नीचे दिए गए कोड का उपयोग करें या% http: // REQUEST_SCHEME} को http / https के साथ बदलें।
APACHE 2.2 और नया
गैर-डब्ल्यूडब्ल्यूडब्ल्यू => डब्ल्यूडब्ल्यूडब्ल्यू:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
... या छोटा संस्करण ...
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|offs
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
WWW => NON-WWW:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
... छोटा संस्करण संभव नहीं है क्योंकि% N केवल पिछले रिवर्टकॉन्ड से उपलब्ध है ...
.htaccess
आधारित समाधान के लिए मैं एक उत्तर देता हूं जो कि व्यास के प्रश्न पर लगाया गया है: stackoverflow.com/a/5262044/367456