मैं यह कैसे लागू कर सकता हूं कि मेरे यूआरएल हमेशा www से शुरू होते हैं?


17

मैं यह सुनिश्चित करना चाहता हूं कि उपयोगकर्ता www.mydomain.comउर्फ के माध्यम से आने पर भी आएं mydomain.com। ऐसा इसलिए है कि मेरा उप-डोमेन पर कुकीज़ पर नियंत्रण है, और इसलिए कि Google एक एकल डोमेन देखता है, न कि URL का एक हॉज-पॉज़।

मैं अपाचे के साथ यह कैसे कर सकता हूं?


5
हो सकता है कि मैं आपको इसके उलट सुझाव दूं और इसके बजाय mydomain.com लागू करूं? 'Www' उपसर्ग बेमानी है और पूरी तरह अनावश्यक है।
एलवी

कुकीज़ को mydomain.com पर सभी उप-डोमेन में भेजा जाता है, जबकि मैं खुद तय कर सकता हूं कि कुकीज www.mydomain.com के साथ कहाँ से भरी हुई हैं। उदाहरण के लिए, मैं static.mydomain.com पर कुकीज़ जोड़ने से बच सकता हूँ, ताकि कुकीज़ आएँ 'हर उस छवि के लिए प्रेषित जो भरी हुई है। यह निश्चित रूप से अनावश्यक नहीं है।
मगंर

आप विशेष रूप से Google को एकल लिंकिंग शैली का उपयोग करने के लिए कह सकते हैं। मेरा जवाब नीचे देखें।
रॉबिनक्स

मेरे पास रेप नहीं है, लेकिन इन टैग्स को जोड़ना मददगार होगा: रीडायरेक्ट redirectmatch mod_alias
टॉम

1
हालांकि यह बहुत बाद में है, यह अभी भी प्रासंगिक है। www को पदावनत नहीं किया जाता है, क्योंकि बिना उप डोमेन वाले डोमेन में कई नुकसान हैं। Www का उपयोग करने के कई कारणों के लिए हां-www.org/why-use-www देखें ।
user50849

जवाबों:


17
<VirtualHost ip:80>
   ServerName domain.com
   RedirectMatch permanent ^(.*)$ http://www.domain.com$1
</VirtualHost>

<VirtualHost ip:80>
   ServerName www.domain.com

   ... usual config
</VirtualHost>

7
थोड़ा सरल समाधान के लिए, आप कर सकते हैं: "रीडायरेक्ट स्थायी / ptth: //www.domain.com/" और अपाचे स्वचालित रूप से प्रत्यय को संरक्षित करेगा। (मैंने ऑटोलिंक को निष्क्रिय करने के लिए http को उलट दिया।)
ग्रेग हेविगिल

1
वास्तव में ? मधुर, मुझे ऐसा कभी नहीं पता था। मुझे हमेशा लगा कि यूआरआई के अनुगामी भागों को संरक्षित करने के लिए आपको RedirectMatch का उपयोग करना होगा
डेव चेनी

4

इसे अपनी httpd.confफ़ाइल में जोड़ें :

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

4

Mod_rewrite सपोर्ट को सक्षम करें फिर निम्न सामग्री वाले डोमेन के लिए रूट फ़ोल्डर में एक .htaccess फ़ाइल बनाएं:

<IfModule mod_rewrite.c>
   Options +FollowSymLinks
   Options +Indexes
   RewriteEngine On
   RewriteBase /
   RewriteCond %{HTTP_HOST} ^domain\.com$
   RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
</IfModule>

रेवेरिटकांड टेस्ट केस को असंवेदनशील बनाने की भूल न करें ...
अलनीतक

ऐसा तभी करें जब आपके पास किसी कारण से अपाचे कॉन्फिग फ़ाइल में परिवर्तन करने की पहुँच न हो। .htaccessफाइलों में बहुत अधिक ओवरहेड होता है, और उनके अंदर फिर से लिखना इसे बहुत खराब कर देता है।
जॉन डाल्टन

Redirect का उपयोग करना इस कार्य के लिए mod_rewrite का उपयोग करने के लिए हमेशा बेहतर होता है।
डेविड पैस्ले

3

यदि आप वास्तव में चाहते हैं कि Google एक विशिष्ट डोमेन शैली ( www के साथ या उसके बिना ) का उपयोग करे तो एक निशुल्क Google वेबमास्टर टूल खाता बनाएं , अपने डोमेन के स्वामित्व को सत्यापित करें (एक फ़ाइल अपलोड करें) और ऑनलाइन नियंत्रण कक्ष का उपयोग करके अपने पसंदीदा डोमेन को सेट करें ।

यह सरल है, और आपको किसी भी सर्वर साइड कोड को बदलने की आवश्यकता नहीं है, www के साथ या उसके बिना इनबाउंड लिंक को भी आपके पृष्ठों के पेजरैंक को बढ़ाते हुए माना जाएगा।

लिंक URL के www और non-www दोनों संस्करणों (उदाहरण के लिए, http://www.example.com और http://example.com ) का उपयोग करके आपकी साइट को इंगित कर सकते हैं । पसंदीदा डोमेन वह संस्करण है जिसे आप खोज परिणामों में अपनी साइट के लिए उपयोग करना चाहते हैं ।

एक बार जब आप हमें अपना पसंदीदा डोमेन नाम बता देते हैं, तो URL प्रदर्शित करते समय हम आपकी प्राथमिकता को ध्यान में रखते हैं। इस परिवर्तन को हमारे सूचकांक में पूरी तरह से दिखाई देने से पहले आपको कुछ समय लग सकता है।

यदि आप एक पसंदीदा डोमेन निर्दिष्ट नहीं करते हैं, तो हम डोमेन के www और गैर-www संस्करणों को अलग-अलग पृष्ठों के अलग-अलग संदर्भों के रूप में मान सकते हैं।


1

मुझे इससे विपरीत समस्या थी, www.domain.com जाने वाले लोग जब मैं सिर्फ domain.com से सीधे सेवा देना चाहता हूं:

<VirtualHost *:80>
   ServerName domain.com

   ... usual config
</VirtualHost>

<VirtualHost *:80>
   ServerName www.domain.com
   ServerAlias sub.domain.com # can also catch some other subdomains
   ServerAlias *.domain.com # or all previously unmatched domains

   Redirect permanent / http://domain.com/
</VirtualHost>

जैसा कि ग्रेग हेवगिल ने उल्लेख किया है, Redirect का उपयोग RedirectMatch की तुलना में थोड़ा सरल है और वही काम करता है, अधिक विवरण के लिए http://httpd.apache.org/docs/2.0/mod/mod_alias.html#redirect देखें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.