जेनेरिक htaccess गैर-www पर रीडायरेक्ट www


484

मैं रीडायरेक्ट करने के लिए चाहते हैं www.example.comके लिए example.com। निम्न htaccess कोड ऐसा होता है:

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

लेकिन, क्या डोमेन नाम को हार्डकोड किए बिना जेनेरिक फैशन में ऐसा करने का कोई तरीका है?


64
यह जानना महत्वपूर्ण है कि यदि आप एक www (या कुछ अन्य उपडोमेन) का उपयोग नहीं करते हैं, तो सभी कुकीज़ को हर उपडोमेन के पास जमा किया जाएगा, ताकि आप स्थैतिक सामग्री परोसने के लिए कुकी-कम उपडोमेन न पा सकें। ब्राउज़र और सर्वर के बीच आगे और पीछे भेजे गए डेटा की मात्रा। बाद में आपको कुछ पछतावा हो सकता है: twitter.com/codinghorror/statuses/1637428313
सैम हस्लर

3
एक और बात पर विचार करें, यह सुनिश्चित करें कि आप अपने पृष्ठों में www के बिना विहित नाम निर्धारित कर रहे हैं, संभव डुप्लिकेट सामग्री दंड से बचने के लिए। इसके अलावा अगर आपके लिंक में पूर्ण यूआरएल हैं, तो सुनिश्चित करें कि वे सभी गैर-www भी हैं।
जेरेमी मॉर्गन

स्पष्ट पुनर्निर्देशन को बेहतर रखने के लिए मेरे दिमाग में, विशेष रूप से किसी अन्य डोमेन के लिए कॉन्फ़िगरेशन की प्रतिलिपि बनाते समय, जिसे अलग-अलग ट्यूनिंग की आवश्यकता हो सकती है (www डोमेन कुछ मामलों में बेहतर है) weboptimizer.ch/2014/01/redirection-www
स्नोफ्लेक

किसी भी कारण से यह समाधान रूट url को छोड़कर सभी मामलों के लिए काम करेगा? उदाहरण के लिए domain.com नहीं piont को domain.com , जबकि domain.com/page1 पर रीडायरेक्ट करता है domain.com/page1
जेफ सोलोमन

यदि आप प्रोटोकॉल (HTTP या HTTPS) को बनाए रखते हुए www से गैर-www पर पुनर्निर्देशित करना चाहते हैं, तो इस संबंधित प्रश्न को देखें: प्रोटोकॉल HTTP या HTTPS को बनाए रखते हुए www को पुनर्निर्देशित करें
MrWhite

जवाबों:


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

माइकल के रूप में भी यही एक काम करता है: पी


16
यदि यह काम नहीं करता है, तो आप शायद RewriteEngine Onइसे काम करने के लिए अग्रदूत को याद कर रहे हैं ।
Hendry

8
@ नहीं, मैं इसका उल्टा कैसे उपयोग करूंगा, एक गैर-www वेबसाइट में www जोड़ने के लिए?
अनरख

18
यह पुनर्निर्देशित http://www.domain.com/करता है http://domain.com//। आप जोड़ना चाहिए /करने के लिए RewruteRule। यह मेरे लिए काम करता है RewriteRule ^/(.*)$ http://%1/$1 [R=301,L]
व्लादिमीर प्रुडनिकोव

13
मैं व्लादिमीर के रूप में एक ही समस्या हो रही थी यह http://domain.com//डबल स्लैश के साथ पुनर्निर्देशित । तो मैंने किया RewriteRule ^(.*)$ http://%1$1 [R=301,L] और यह अब तक काम कर रहा है
bobfet1

5
कृपया फिर से लिखना इंजन के बजाय निम्नलिखित समाधान का उपयोग करें, यह सुरुचिपूर्ण होने के दौरान बहुत अधिक तेज़ है: stackoverflow.com/questions/1100343/…
बिरला

111

लेकिन अगर हमें अलग http और https के लिए ऐसा करने की आवश्यकता है:

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

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

2
www.example.com/ redirects to example.com// अतिरिक्त स्लैश हटाने का कोई तरीका?
बॉबी एस

अच्छा प्रश्न। मुझे लगता है कि त्वरित समाधान अतिरिक्त नियमों (यानी केवल इस मामले के लिए) का उपयोग ऊपर वर्णित इन से पहले किया जाएगा। जैसे: RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^www.example.com/$ [NC] RewriteRule ^(.*)$ http://www.example.com [R=301,L] ...
एंड्रॉन

3
@ बॉबीज मैंने इस लेख में समाधान का उपयोग किया है । यह www और HTTP को गैर-www HTTPS पर पुनर्निर्देशित करता है और अनुगामी को भी संभालता है /
तात्यामेली

आपको केवल एक अतिरिक्त स्लैश (URL-पथ की शुरुआत में) मिलेगा, यदि आप इन निर्देशों को सीधे सर्वर कॉन्फिगरेशन (या virtualhost) में रखते हैं। में .htaccessआपको अतिरिक्त स्लैश नहीं मिलना चाहिए। (बस टिप्पणी करने के लिए, यदि आप सर्वर config में इस रीडायरेक्ट प्रदर्शन कर रहे हैं तो आप शायद नहीं mod_rewrite का उपयोग कर के साथ ... एक सरल mod_alias शुरू करने के लिए किया जाना चाहिए Redirectउचित vhost कंटेनर में अधिक कुशल और कम त्रुटि होने का खतरा हो सकता है।)
MrWhite

72

गैर-www को www पर पुनर्निर्देशित करें (दोनों: http + https)

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

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

4
@nightcoder इसका कारण यह है उलटा रीडायरेक्ट के लिए मेरे समाधान (www को गैर- www से) के रूप में Andron के लिए विरोध
डिमिट्री

2
नोट: यदि आप अन्य उद्देश्यों के लिए उपडोमेन नामों का उपयोग करना चाहते हैं तो यह समाधान कुछ समस्याओं का कारण हो सकता है। जैसे, app.yourdomain.com को www.app.yourdomain.com पर रीडायरेक्ट किया जाएगा।
मार्टी झाँग

1
यह प्रश्न के उत्तर के ठीक विपरीत है।
जॉन

मुझे जोड़ना था RewriteEngine Onऔर RewriteBase /, लेकिन अन्यथा अच्छी तरह से काम किया।
overthink

45

यदि आप httpd.conf फ़ाइल में ऐसा करना चाहते हैं, तो आप इसे mod_rewrite के बिना कर सकते हैं (और जाहिर है यह प्रदर्शन के लिए बेहतर है)।

<VirtualHost *>
  ServerName www.example.com
  Redirect 301 / http://example.com/
</VirtualHost>

मुझे वह उत्तर यहाँ मिला: /server/120488/redirect-url-within-apache-virtualhost/120507#120507


33

यहां www URL को पुन: www पर अनुप्रेषित करने के नियम दिए गए हैं:

#########################
# redirect www to no-www
#########################

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

यहाँ www के लिए एक www www के बिना यूआरएल को पुनर्निर्देशित करने के नियम हैं:

#########################
# redirect no-www to www
#########################

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

ध्यान दें कि मैंने NEक्वेरी स्ट्रिंग से बचने के लिए अपाचे को रोकने के लिए ध्वज का उपयोग किया था । इस झंडे के बिना, अपाचे अनुरोधित URL http://www.example.com/?foo%20barको बदल देगाhttp://www.example.com/?foo%2250bar


1
क्या आप http से https में रीडायरेक्ट www के साथ-साथ गैर-www
HYDER ALI

इसे बदलने पर HTTPS के लिए बाध्य करने के लिए http: // को https: // में बदलें। आप ट्रैफ़िक के लिए एक नियमित http-> https पुनर्निर्देशन भी जोड़ना चाहेंगे जो इन नियमों द्वारा पुनर्निर्देशित नहीं किया जा रहा है।
हीरे

11
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^/(.*)$ https://%1/$1 [R]

RewriteCondमें कैप्चर सब कुछ HTTP_HOSTचर के बादwww. और उस में की बचत होती है %1

RewriteRuleकैप्चर अग्रणी बिना यूआरएल /और में यह बचाता है $1


1
sans leading "/"- .htaccess(जैसा कि प्रश्न में कहा गया है) कोई अग्रणी नहीं है /, इसलिए पैटर्न कभी मेल नहीं खाता और पुनर्निर्देश कभी नहीं होता है। ( सर्वर या वर्चुएलहोस्ट संदर्भ में केवल एक प्रमुख स्लैश है ।) इसके अलावा, यदि आपके पास इसके बाद कोई mod_rewrite निर्देश है तो आपको Lध्वज की आवश्यकता होगी ।
मृत्तक

7

इसे इस्तेमाल करे:

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

यदि होस्ट www से शुरू होता है, तो हम URL की शुरुआत में पूरे होस्ट को चिपकाते हैं, फिर "www" को हटा दें।


1
RoBorg, दुर्भाग्य से आपकी सेटिंग्स काम नहीं करती हैं, अगर मैं यह कोशिश करता हूं: example.com/hello/world मैं यहां समाप्त होता हूं : example.com/hello/world/world मुझे% {HTTP_POST} के बाद भी एक स्लैश जोड़ना होगा पहला रेव्रीट्यूल
डीपवेल

2
मैं Apache / 2.2.9 (Unix) का उपयोग कर रहा हूं। यह www.website के लिए काम करता है, जो रीडायरेक्ट वेबसाइट के लिए लेकिन निम्नलिखित के लिए: वेबसाइट / परीक्षण -> को जाता है: websitetest मैं एक / दूसरा त्रुटि जोड़कर इस तय: वेबसाइट / परीक्षण / n के लिए चला जाता websitetest / n / n
deepwell

1
इसी के साथ @deepwell के रूप में एक ही मुद्दा।
नीमजी

पहले पाठकों के लिए जो समस्याएँ हैं, क्योंकि ये निर्देश सर्वर कॉन्फ़िगरेशन (या vhost) के लिए अभिप्रेत हैं, न कि .htaccess। एक निर्देशिका संदर्भ में ( .htaccess) आपको पहले RewriteRuleपढ़ने के लिए बदलना चाहिए : RewriteRule ^(.*)$ %{HTTP_HOST}/$1 [C,DPI](अपाचे 2.2.12+ की आवश्यकता है)। नोट स्लैश और DPI(त्यागें पथ सूचना) ध्वज के अलावा - URL-पथ का हिस्सा प्रतीत होता है (जो वास्तव में "पथ-जानकारी") के रूप में पहले टिप्पणियों में कहा गया है। हालांकि, सरल निर्देश हैं - जैसा कि अन्य उत्तरों में शामिल है।
२०:२५ बजे ०५ मिनट पर ०

7

पूरा जेनरिक WWW हैंडलर, http / https

मुझे पूर्ण उत्तर नहीं मिला। मैं डब्ल्यूडब्ल्यूडब्ल्यू समावेशन को संभालने के लिए इसका उपयोग करता हूं।

  1. सामान्य। डोमेन जानकारी की आवश्यकता नहीं है।
  2. प्राथमिक डोमेन पर WWW बलों: www.domain.com
  3. उपडोमेन पर WWW हटाता है: sub.domain.com
  4. HTTP / HTTPS स्टेटस को सुरक्षित रखता है।
  5. डोमेन / उप-डोमेन के लिए अलग-अलग कुकीज़ की अनुमति देता है

कृपया मुझे बताएं कि यह कैसे काम करता है या यदि मैंने एक बचाव का रास्ता छोड़ा है।

RewriteEngine On
RewriteBase /

# Force WWW. when no subdomain in host
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ [NC]
RewriteCond %{HTTPS}s ^on(s)|off [NC]
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# Remove WWW. when subdomain(s) in host     
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|off [NC]
RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)(.+\.)(.+\.)(.+)$ [NC]
RewriteRule ^ %1%3%4%5%{REQUEST_URI} [R=301,L]

मूल प्रश्न wwwगैर को पुनर्निर्देशित करने के लिए कहता है www। आप को शामिल करने के लिए मजबूर कर रहे हैं www
वादिम

6

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

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]

RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

(सुनिश्चित करें कि पाठ की प्रत्येक पंक्ति के बीच कोई पंक्ति स्थान नहीं है, हालाँकि; मैंने लाइनों के बीच एक अतिरिक्त स्थान जोड़ा है इसलिए यह इस विंडो में प्रस्तुत करता है।)

यह कोड का एक स्निपेट है जिसका उपयोग आपकी साइट के www संस्करण को http: // संस्करण में निर्देशित करने के लिए किया जा सकता है। अन्य समान कोड हैं जिनका उपयोग किया जा सकता है, भी।


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

सबफ़ोल्डर के लिए


3

उन लोगों के लिए जिन्हें 'www' उपसर्ग के बिना पूरी साइट तक पहुंचने में सक्षम होना चाहिए ।

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

मारे यकीन है कि आप इसे निम्नलिखित फ़ाइल में जोड़ते हैं

/site/location/.htaccess 

यह उदाहरण पूर्ण नहीं है - आप protosslपर्यावरण चर सेट नहीं कर रहे हैं (यह एक मानक / सर्वर चर नहीं है)। यह हमेशा खाली रहेगा, इसलिए हमेशा अनुप्रेषित रहेगा http। ( protosslकोड में पहले सेट करने के पीछे का विचार यह है कि जब आप प्रोटोकॉल को पुनर्निर्देशित करना चाहते हैं, हालांकि। इन दिनों आप शायद httpsहर समय पुनर्निर्देशित करें ।)
MrWhite

3

Www या गैर-www पर पुनर्निर्देशित करने के लिए .htaccess का उपयोग करना:

बस अपने मुख्य, रूट .htaccess फ़ाइल में कोड की निम्न पंक्तियाँ डालें। दोनों मामलों में, बस domain.com को अपने स्वयं के होस्टनाम में बदलें।

Www पर पुनर्निर्देशित करें

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^domain\.com [NC]
  RewriteRule ^(.*)$ http://wwwDOTdomainDOtcom/$1 [L,R=301]
</IfModule>

गैर-www पर पुनर्निर्देशित करें

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC]
  RewriteRule ^(.*)$ http://domainDOTcom/$1 [L,R=301]
</IfModule>

DOT को => में बदलें। !!!


2

मैंने उपरोक्त नियम का उपयोग www को no www www करने के लिए किया था और यह मुखपृष्ठ के लिए ठीक काम करता है, हालाँकि आंतरिक पृष्ठों पर वे /index.php को अग्रेषित कर रहे हैं।

मुझे अपनी .htaccess फ़ाइल में यह अन्य नियम मिला जो यह कारण है लेकिन यह सुनिश्चित नहीं है कि इसके बारे में क्या करना है। कोई भी सुझाव बढ़िया होंगे:

############################################
## always send 404 on missing files in these folders

    RewriteCond %{REQUEST_URI} !^/(media|skin|js)/

############################################
## never rewrite for existing files, directories and links

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

############################################
## rewrite everything else to index.php

    RewriteRule .* index.php [L]

आपके द्वारा उद्धृत किए जाने से पहले आपको गैर-www पुनर्निर्देशन नियम रखने की आवश्यकता है।
व्लादिमीर जोवानोविक


2
RewriteEngine on
# if host value starts with "www."
RewriteCond %{HTTP_HOST} ^www\.
# redirect the request to "non-www"
RewriteRule ^ http://example.com%{REQUEST_URI} [NE,L,R]

यदि आप wwwदोनों को निकालना चाहते हैं httpऔर https, निम्नलिखित का उपयोग करें:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.
RewriteCond %{HTTPS}s ^on(s)|offs
RewriteRule ^ http%1://example.com%{REQUEST_URI} [NE,L,R]

यह नॉन एसएसएल को रीडायरेक्ट करता है

सेवा

और एसएसएल

सेवा

अपाचे पर 2.4.*आप निर्देश के Redirectसाथ इसका उपयोग कर सकते हैं if,

<if "%{HTTP_HOST} =='www.example.com'">
Redirect / http://example.com/
</if>

2

उपयोग: जावास्क्रिप्ट / jQuery

// similar behavior as an HTTP redirect
window.location.replace("http://www.stackoverflow.com");
// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";

या .htaccess:

RewriteEngine On
RewriteBase /
Rewritecond %{HTTP_HOST} ^www\.yoursite\.com$ [NC]
RewriteRule ^(.*)$ https://yoursite.com/$1 [R=301,L]

और PHP विधि:

$protocol = (@$_SERVER["HTTPS"]    == "on") ? "https://" : "http://";

if (substr($_SERVER['HTTP_HOST'], 0, 4) !== 'www.') {
    header('Location: '.$protocol.'www.'.$_SERVER    ['HTTP_HOST'].'/'.$_SERVER['REQUEST_URI']);
    exit;
}

अजाक्स

$.ajax({
    type: "POST",
    url: reqUrl,
    data: reqBody,
    dataType: "json",
    success: function(data, textStatus) {
        if (data.redirect) {
            // data.redirect contains the string URL to redirect to
            window.location.href = data.redirect;
        }
        else {
            // data.form contains the HTML for the replacement form
            $("#myform").replaceWith(data.form);
        }
    }
});

1

एक ही रास्ता मुझे काम करने के लिए मिला ...

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

1

अगर आप www। url या ssl prototcol को मजबूर करने के लिए, फिर htaccess फ़ाइल में संभावित भिन्नताओं का उपयोग करने का प्रयास करें, जैसे:

रिवरटाइंगइन ऑन
रिवाइटबेस /

### फोर्स WWW ###

ReriteCond% {HTTP_HOST} ^ उदाहरण \ .com
RewriteRule (। *) Http://www.example.com/$1 [R = 301, L]

## बल SSL ###

% ReriteCond% {SERVER_PORT} 80 
RewriteRule ^ (। *) $ Https://example.com/$1 [R, L]

## ब्लॉक आईपी का ###
आदेश अस्वीकार करें, अनुमति दें
256.251.0.139 से अस्वीकार करें
199.127.0.259 से अस्वीकार करें

Apache एक और पोर्ट सुन सकता है, उदाहरण के लिए 81. इसलिए इसके बजाय RewriteCond %{SERVER_PORT} 80मैं ऐसे और अधिक सार्वभौमिक चेक का उपयोग करने का सुझाव देता हूं:RewriteCond %{HTTPS} off
Andron

1

चयनित उत्तर और यहां कई अन्य समाधानों के बाद url का हिस्सा / के बाद गिरा दिया गया, इसलिए मूल रूप से यह हमेशा मुख्य डोमेन पर पुनर्निर्देशित किया गया, कम से कम मेरे लिए .. तो मैं स्लैश के बाद पूरे नमूने का सम्मान करते हुए काम का नमूना जोड़ रहा हूं ..

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

1

वैकल्पिक दृष्टिकोण यदि .htaccess अनुकूलन आदर्श विकल्प नहीं है:

मैंने सार्वजनिक उपयोग के लिए सरल पुनर्निर्देशित सर्वर बनाया है। बस A या CNAME रिकॉर्ड जोड़ें:

CNAME   r.simpleredirect.net
A       89.221.218.22

अधिक जानकारी: https://simpleredirect.net


0

मुझे यकीन नहीं है कि क्यों आप www को हटाना चाहते हैं। लेकिन रिवर्स संस्करण होगा:

# non-www.* -> www.*, if subdomain exist, wont work
RewriteCond %{HTTP_HOST} ^whattimein\.com
RewriteRule ^(.*)$ http://www.whattimein.com/$1 [R=permanent,L]

और इस लिपि का लाभ यह है: यदि u में test.whattimein.com या कोई अन्य (विकासशील / परीक्षण के लिए वातावरण) जैसा कुछ है, तो यह यू को मूल वातावरण में पुनर्निर्देशित नहीं करेगा।


2
Www उपडोमेन को शामिल किया जाना चाहिए या नहीं यह वास्तव में व्यक्तिगत प्राथमिकता का मामला है और यह डोमेन नाम और लक्षित दर्शकों पर निर्भर कर सकता है। जेनेरिक कोड www से कोई भी www के लिए रीडायरेक्ट करने के लिए ऊपर पोस्ट किया गया है, परीक्षण वातावरण को भी ठीक करता है, क्योंकि रीडायरेक्ट केवल तब होता है जब "www।" उपडोमेन का सामना करना पड़ा है।
मृद्वीथ

1
यह सवाल उपयोगकर्ता द्वारा पूछे जाने के विपरीत है, जो केवल पोस्ट को प्रदूषित कर रहा है।
वादिम

0

यह अपाचे 2.4 पर काम करने के लिए अद्यतन किया गया है:

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

माइकल बनाम केवल परिवर्तन को हटाना है [NC], जो "AH00665" त्रुटि पैदा करता है:

नॉन-रेगेक्स पैटर्न '-f' के लिए NoCase विकल्प समर्थित नहीं है और इसे अनदेखा किया जाएगा


पहले वाले उत्तर को "अपाचे 2.4 पर काम करने के लिए अद्यतन करने" की आवश्यकता नहीं थी। "चेतावनी" जो आप उद्धृत कर रहे हैं (AH00665) एक अलग निर्देश से संबंधित है (जैसे। यदि आपके पास कुछ ऐसा था RewriteCond %{REQUEST_FILENAME} !-f [NC])। NCझंडा ऊपर है, तथापि, कारण में थोड़ा फर्क नहीं पड़ता NCझंडा चाहिए यहाँ इस्तेमाल किया जा बॉट ट्रैफ़िक का छोटा सा अंश है कि (गलत) एक अपरकेस होस्ट नाम भेजता है को पकड़ने के लिए है।
मृत्तक

0

यदि जोड़ा गया हो तो लोकलहोस्ट, पुनर्निर्देशन को अनदेखा करें (स्थानीय परिवेश में विकास के उद्देश्य से)। यदि लोकलहोस्ट नहीं है और (https या इट्स www नहीं है), तो https और नॉन-www पर रीडायरेक्ट होता है।

RewriteEngine On

RewriteBase /
RewriteCond %{HTTP_HOST} !localhost [NC]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

कृपया अपने कोड को विस्तृत करें ताकि ओपी समझ जाए कि यह प्रश्न का उत्तर कैसे देता है।
रयाननर्ड

-2

नमस्ते आप अपनी htaccess फाइल पर निम्नलिखित नियमों का उपयोग कर सकते हैं:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]

सवाल एक "सामान्य" समाधान के लिए पूछ रहा है जिसमें डोमेन नाम शामिल नहीं है। आपका समाधान प्रश्न के बिना पूछे जाने वाले (गैर-www से www के बजाय, www से गैर-www के लिए) के पूर्ण विपरीत करता है, बिना स्पष्टीकरण के।
मृ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.