অ্যাপাচি নন www থেকে www এ পুনঃনির্দেশ করুন


206

আমার কাছে এমন একটি ওয়েবসাইট রয়েছে যা দেখে মনে হয় না যে অ-www থেকে www তে পুনঃনির্দেশিত হয়েছে।

আমার অ্যাপাচি কনফিগারেশন নিম্নরূপ:

RewriteEngine On
### re-direct to www
RewriteCond %{http_host} !^www.example.com [nc]
RewriteRule ^(.*)$ http://www.example.com/$1 [r=301,nc] 

আমি কী মিস করছি?


1
একটি জন্য .htaccess: ভিত্তিক সমাধান আমি একটি উত্তর যে ব্যাসরেখা প্রশ্নে যাকে জাহির করা হয়েছে সুপারিশ stackoverflow.com/a/5262044/367456
hakre

এটি ভাল, এটি ইউআরএলে যদিও একটি স্ল্যাশ যুক্ত করে, তাই ডলারের আগে স্ল্যাশটি হারাতে হবে।
wuxmedia

উত্তর:


510

পুনরায় লেখার ইঞ্জিনটি ব্যবহার করা এই সমস্যাটি সমাধানের জন্য বেশ ভারী ওজন way এখানে একটি সহজ সমাধান:

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

<VirtualHost *:80>
    ServerName www.example.com
    # real server configuration
</VirtualHost>

এবং তারপরে আপনার আসল সার্ভার কনফিগারেশনের জন্য আপনার <VirtualHost>সাথে আরও একটি বিভাগ থাকবে ServerName www.example.comনির্দেশিকা/ ব্যবহার করার পরে অ্যাপাচি স্বয়ংক্রিয়ভাবে যে কোনও কিছু সংরক্ষণ করে , যা এই পদ্ধতিটি কেন কাজ করবে না (এটি আসলে যখন তা ঘটে) তখন এটি একটি সাধারণ ভুল ধারণা।Redirect


20
এসএসএল ভার্চুয়াল হোস্ট থাকা কোনও সাইটের জন্য আপনি এটি কীভাবে করবেন?
শাবিরোব

28
আমি এই ত্রুটিটি পেয়েছি "উদাহরণ ডটকমের ওয়েবপৃষ্ঠায় অনেক বেশি পুনঃনির্দেশের ফলাফল হয়েছে" এই পরামর্শটি ব্যবহার করার সময়। অন্যদের কি এই সমস্যা আছে?
জোনাথন বার্গার

4
@ ব্ল্যাকডিভাইন: অন্য দিকে এটি করার মতো যাদুকর কিছুই নেই। কেবল অদলবদল করুন www.exampleএবং exampleযেখানেই সে নমুনায় প্রদর্শিত হবে।
গ্রেগ হিউগিল

11
@ জোনাথনবার্গার যদি আপনি খুব বেশি পুনর্নির্দেশ করেন তবে আপনি সম্ভবত ফাইলটি ভালভাবে কনফিগার করেছেন না। 2 ভার্চুয়ালহোস্টগুলি নিশ্চিত করুন: একটি নন-www এর সাথে উপরের যা সার্ভারনাম www.example.com এর সাথে প্রকৃত কনফিগারেশন রয়েছে। এছাড়াও www.example.com কনফিগারেশনে (মোড_লিয়াস এবং মোড_আরাইট উভয়ই) পুনর্নির্দেশ না করার বিষয়টি নিশ্চিত করুন।
সাভাস বেদোভা 4'13

3
ভার্চুয়াল হোস্ট সার্ভারের জন্য, উদাহরণ ডটকম বলুন, আমার কাছে Redirect 301 / http://example2.com/extra/তবে এটি পুনঃনির্দেশিত হলে, এটি পিছনে থাকা স্ল্যাশকে মিস করে, যার অর্থ example.com/blahযায় example2.com/extrablah। কোন ধারনা? (অ্যাপাচি ২.২.২২)
পিটার হায়ে

87

http://example.com/subdir/?lold=13666 => http://www.example.com/subdir/?lold=13666

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

3
খুব সংক্ষিপ্ত উত্তর ... তবে পয়েন্টগুলির ... নিশ্চিত নয় যে এটি কোনও আপ বা ডাউন ভোট
কিনা

2
ওহ এটি পরিষ্কার, এটি শীর্ষ স্তরের সার্ভার কনফিগারেশনে অন্তর্ভুক্ত করা যেতে পারে (এবং যদি থাকে) প্রতিটি ভার্চুয়াল হোস্টের জন্য প্রযোজ্য হবে!
অতঃপর 23

হ্যালো @ বারজুমকো আপনি কীভাবে এটি অর্জন করবেন, যা www ছাড়াই সবার পক্ষে সত্য, তবে তারপরে বলা যাক example.com/subdi1/ws/* www ছাড়াই?
কালো সংবেদী

1
আমি এইচটিটিপিএস ভার্চুয়াল হোস্টগুলির জন্যও এই সমাধানটি ব্যবহার করেছি। sতৃতীয় সারিতে http তে একটি যুক্ত করুন ।
রডরিগপ

46
<VirtualHost *:80>
    ServerAlias example.com
    RedirectMatch permanent ^/(.*) http://www.example.com/$1
</VirtualHost>

এটি আমার পক্ষে কার্যকর হয়নি; এটি একই সাইটে একটি অসীম পুনর্নির্দেশ লুপের কারণ ঘটেছে
dmiller309

1
@ dmiller309: আপনি কি এতে অন্তর্ভুক্ত www.হয়েছেন ServerAlias?
চেরুভিম

2
আপনি ঠিক বলেছেন, আমি ঘটনাক্রমে www। সার্ভারআলিয়াসে * ব্যবহার করে। ওয়াইল্ডকার্ড। কারণ আমি ভার্চুয়ালহোস্ট এন্ট্রিগুলি, * এর ক্রমটি বিভ্রান্ত করেছি। ওয়াইল্ডকার্ডের সাথে ম্যাচ করার সুযোগ হয়েছিল যখন আমি মনে করি না এটি হবে।
dmiller309

7
এটি সেরা উত্তর, কারণ এটি পরিষ্কার, পথ রাখে (উত্তর # 1 এর বিপরীতে) এবং পুনর্লিখন ব্যবহার করে না।
schieferstapel

30

wwwআপনার URLওয়েবসাইট থেকে সরাতে আপনার .htaccessফাইলটিতে এই কোডটি ব্যবহার করুন:

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

wwwআপনার ওয়েবসাইটে জোর করার URLজন্য এই কোডটি ব্যবহার করুন.htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^YourSite.com$
RewriteRule ^(.*)$ http://www.yourSite.com/$1 [R=301]
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule ^(([^/]+/)*[^./]+)$ /$1.html [R=301,L]

যেখানে YourSite.comআপনার সাথে প্রতিস্থাপন করা আবশ্যক URL


এখানে সেরা উত্তর, যেমন এটি একাধিক ডোমেন
নামযুক্ত

2
.Html এর সাথে দ্বিতীয় অংশটি কী ??
নাথান এইচ

6
পুনঃনির্দেশের পরে ডাবল স্ল্যাশ (//) না পাওয়ার জন্য $ 1 এর আগে স্ল্যাশ সরিয়ে ফেলুন => রাইরাইটরুল ^ (। *) $ YourSite.com $ 1 [আর = 301]
কেভিন ক্যাম্পিয়ন

22
    <VirtualHost *:80>
       DocumentRoot "what/ever/root/to/source"
       ServerName www.example.com

       <Directory "what/ever/root/to/source">
         Options FollowSymLinks MultiViews Includes ExecCGI
         AllowOverride All
         Order allow,deny
         allow from all
         <What Ever Rules You Need.>
      </Directory>

    </VirtualHost>

    <VirtualHost *:80>
      ServerName example.com
      ServerAlias *.example.com
      Redirect permanent / http://www.example.com/
    </VirtualHost>

উপরের কোডের সাথে এটিই ঘটে। অনুরোধটি www.example.com হলে প্রথম ভার্চুয়াল হোস্ট ব্লকটি পরীক্ষা করে এবং সেই ডিরেক্টরিতে আপনার ওয়েবসাইটটি চালায়।

যা ব্যর্থ, এটি দ্বিতীয় ভার্চুয়াল হোস্ট বিভাগে আসে। এখানে www.example.com ব্যতীত অন্য কিছু www.example.com- এ পুনঃনির্দেশিত।

আদেশ এখানে গুরুত্বপূর্ণ। আপনি যদি প্রথম দ্বিতীয় ভার্চুয়ালহোস্ট নির্দেশিকা যুক্ত করেন তবে এটি পুনর্নির্দেশ লুপের কারণ হবে।

এই সমাধানটি আপনার ডোমেনের কোনও অনুরোধ www.yourdomain.com এ পুনর্নির্দেশ করবে।

চিয়ার্স!


16

এটি একটি দম্পতি বর্ধনের সাথে অন্যান্য অনেক পরামর্শের মতো:

  • ডোমেনটিকে হার্ডকোড করার দরকার নেই (একাধিক ডোমেন গ্রহণকারী বা পরিবেশের মধ্যে থাকা vhosts এর সাথে কাজ করে)
  • স্কিমটি সংরক্ষণ করে (HTTP / https) এবং পূর্ববর্তী %{REQUEST_URI}বিধিগুলির প্রভাবগুলি উপেক্ষা করে ।
  • আগের RewriteRuleঅংশগুলির মতো অংশের অংশটি প্রভাবিত হয় না %{REQUEST_URI}

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

4
প্রায় নিখুঁত. এটি অবশ্যই% {HTTP_HOST $ $ 1 হতে হবে,% {HTTP_HOST} / $ 1 নয় (বা এটি স্ল্যাশ দ্বিগুণ হবে)
মাইকেল ওয়াইরাজ

@ মিশেল ভাইরাজ: এখানে স্ল্যাশ দ্বিগুণ হয় না ?!
not2savvy

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

এটি দিয়ে শুরু হয় HTTP_HOST ভেরিয়েবল , যার মধ্যে আগত ইউআরএল ( example.com) এর কেবলমাত্র ডোমেন নাম অংশ রয়েছে । ধরে নিচ্ছি যে ডোমেন নামটি একটি ধারণ করে না www.এবং আপনার ডোমেন নামের সাথে ঠিক মেলে, তবে পুনরায় রাইটারেলটি খেলবে। প্যাটার্নটি ^(.*)$সমস্ত কিছুর সাথে মিলবে REQUEST_URI, যা HTTP অনুরোধে অনুরোধ করা সংস্থানটি ( foo/blah/index.html)। এটি এটি একটি পিছনে রেফারেন্সে সঞ্চয় করে, যা পরে নতুন ডোমেন নাম (যা দিয়ে শুরু হয় www) দিয়ে URL লিখতে ব্যবহৃত হয় ।

[NC] কেস-সংবেদনশীল প্যাটার্ন মেলানো নির্দেশ করে, [R=301] নির্দেশ করে 301 কোড ব্যবহার করে একটি বাহ্যিক পুনর্নির্দেশের নির্দেশ দেয় (সংস্থান স্থায়ীভাবে সরানো হয়েছিল) এবং [L]আরও সমস্ত পুনরায় লেখা বন্ধ করে দেয় এবং তত্ক্ষণাত পুনঃনির্দেশিত হয়।


6

অ-www => www এবং বিপরীত www => নন- www উভয়ের জন্য পুনঃনির্দেশ কোড। .Htaccess ফাইলে কোনও হার্ডকোডিং ডোমেন এবং স্কিম নেই। সুতরাং মূল ডোমেন এবং http / https সংস্করণ সংরক্ষণ করা হবে।

অ্যাপাচ ২.৪ এবং আরও নতুন

নন- WWW => ডাব্লুডাব্লুডাব্লু:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ %{REQUEST_SCHEME}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

WWW => নন-ডাব্লুডাব্লুডাব্লু:

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

দ্রষ্টব্য: অ্যাপাচি ২.২ এ কাজ করছেন না যেখানে% {REQUEST_SCHEME। উপলব্ধ নেই। অ্যাপাচি ২.২ এর সাথে সামঞ্জস্যের জন্য নীচে কোড ব্যবহার করুন বা% {REQUEST_SCHEME fixed স্থিত http / https এর সাথে প্রতিস্থাপন করুন।


অ্যাপাচ ২.২ এবং আরও নতুন

নন- WWW => ডাব্লুডাব্লুডাব্লু:

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 => নন-ডাব্লুডাব্লুডাব্লু:

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 শুধুমাত্র শেষ রাইরাইটকন্ড থেকে উপলব্ধ ...


অ্যাপাচি ২.৪ কনফিগার করে সমস্যার সমাধান হয়েছে, শুদ্ধ উত্তরের জন্য ধন্যবাদ .. !!
কিমচিমন

5

আমি এই দৌড়ে ...

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

আমাদের নতুন সার্ভারে 25+ ডোমেনের জন্য আমার এটি সর্বজনীন হতে হবে, সুতরাং এই নির্দেশটি <ডিরেক্টরি>> ট্যাগে আমার ভার্চুয়াল.কনফ ফাইলটিতে রয়েছে। (দির সকল ডক্রোকটের পিতামাতা)

Http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html যা বলেছে তা সত্ত্বেও আমাকে পুরো ডোক্রুটটি প্যাটার্ন ম্যাচ দিয়ে চলতে থাকায় পুনরায় লেখার নিয়মে কিছুটা হ্যাক করতে হয়েছিল had এটি সম্পর্কে হোস্ট এবং পোর্টের পরে কেবল স্টাফ হচ্ছে।


5

আপনি যদি অ্যাপাচি ২.৪ ব্যবহার করে থাকেন তবে পুনরায় লেখার জন্য অ্যাপাচি মডিউল সক্ষম না করে আপনি এই জাতীয় কিছু ব্যবহার করতে পারেন:

# non-www to www
<If "%{HTTP_HOST} = 'domain.com'">
  Redirect 301 "/" "http://www.domain.com/"
</If>

1
আন্ডাররেটেড উত্তর। এটি ব্যবহার করে অতিরিক্ত ভিহোস্টগুলি এড়ানো যায় যা স্বয়ংক্রিয় লেটসক্রিপ্ট স্ক্রিপ্টগুলির পক্ষে ভাল।
পল

এছাড়াও, যদি আপনি ANSIBLE 2.0 ব্যবহার করেন তবে ANSIBLE 2.0 যেহেতু আপনি এখন সহজেই একটি টাস্কে একটি ফাইলের মধ্যে একটি ব্লক sertোকাতে পারবেন, আরও বিশদ এখানে ডকস.স্যানসিবল
অ্যানসিবল /

3

Www. এ ডোমেইন.টিल्डকে পুনর্নির্দেশ করুন।

নিম্নলিখিত লাইনগুলি অ্যাপাচি নির্দেশিকায় বা .htaccess ফাইলে যুক্ত করা যেতে পারে:

RewriteEngine on    
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  • অন্যান্য সুডোমাইনগুলি এখনও কাজ করছে।
  • লাইনগুলি সামঞ্জস্য করার প্রয়োজন নেই। এগুলি ঠিক জায়গায় কপি / পেস্ট করুন।

আপনি যদি ভোস্টটি সংশোধন করেন তবে অ্যাপাচি পরিবর্তনগুলি প্রয়োগ করতে ভুলবেন না।

(ডিফল্ট Drupal7 .htaccess এর উপর ভিত্তি করে তবে অনেক ক্ষেত্রে কাজ করা উচিত)


3

এটা সহজ!

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

2
<VirtualHost *:80>
    ServerAlias example.com
    RedirectMatch permanent ^/(.*) http://www.example.com/$1
</VirtualHost>

এটি শুধুমাত্র ডোমেন নাম কিন্তু ভেতরের pages.like ... পুনর্চালনা করবে

example.com/abcd.html                ==>     www.example.com/abcd.html
example.com/ab/cd.html?ef=gh    ==>    www.example.com/ab/cd.html?ef=gh


এর জন্য ধন্যবাদ. খুব উপকারী.
অ্যান্থনি


2

সর্বদা ব্যবহার করবেন না Redirect permanent(বা কেন এটি ভবিষ্যতে সমস্যার কারণ হতে পারে)

আপনি যদি সাবডোমেনগুলি পরে যুক্ত করবেন এমন কোনও সুযোগ থাকে তবে ব্যবহার করবেন না redirect permanent

কারণ যদি কোনও ক্লায়েন্ট কোনও সাবডোমেন ব্যবহার করে যা নিবন্ধভুক্ত না হয় কারণ VirtualHostতিনি পরে এই সাবডোমেনটি পরে নিবন্ধিত হওয়ার পরেও পৌঁছাতে পারে না।

redirect permanent একটি প্রেরণ HTTP 301 Moved Permanentlyক্লায়েন্টকে (ব্রাউজারে) এবং তাদের মধ্যে অনেকগুলি এই প্রতিক্রিয়াটিকে চিরকালের জন্য ক্যাশে করে (যতক্ষণ না ক্যাশে সাফ হয়ে যায় [ম্যানুয়ালি])। সুতরাং সেই সাবডোমেনটি ব্যবহার করে সর্বদা www। ***-এ অটোরিরেক্ট করা হবে আবার সার্ভারের অনুরোধ না করে।

দেখতে কতক্ষণ ব্রাউজার ক্যাশে না HTTP- র 301s?

সুতরাং শুধু ব্যবহার Redirect

<VirtualHost *:80>
  ServerName example.com

  Redirect / http://www.example.com/
</VirtualHost>

অ্যাপাচি.অর্গ - যখন মোড_উরাইট ব্যবহার করবেন না

অ্যাপাচি.অর্গ - ক্যানোনিকাল হোস্ট-নেম



0

আমার ঠিক একই সমস্যা হয়েছে তবে এটি দিয়ে সমাধান করা

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

এই বিধিটি www- তে নন-www কে পুনঃনির্দেশ করছে।

এবং এই নিয়মটি www- অ-www তে পুনঃনির্দেশিত করতে

RewriteEngine On RewriteCond %{HTTP_HOST} !^my-domain\.com$ [NC] RewriteRule ^(.*)$ http://my-domain.com/$1 [R=301,L]

Http://dense13.com/blog/2008/02/27/redirecting-non-www-to-www-with-htaccess/ থেকে দেখুন


0

এটি আমার পক্ষে কাজ করে:

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

অ্যাপাচে একটি সীমাহীন পুনর্নির্দেশ লুপ এড়াতে সাবডোমেনে সমস্ত ডোমেনকে পুনর্নির্দেশ করার সময় আমি সাব- ডোমেনকে (?!www.domain.com)বাদ দেওয়ার জন্য লুক-ফরওয়ার্ড প্যাটার্নটি ব্যবহার করি ।wwwwww


0

আমি যে কোডটি ব্যবহার করি তা হ'ল:

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

0

-যদি আপনি একাধিক ডোমেন নাম হোস্ট করেন (ptionচ্ছিক)

-যদি সমস্ত ডোমেন নাম https ব্যবহার করে (যেমন তাদের উচিত)

-যদি আপনি চান এই সমস্ত ডোমেইন নাম www ডট ডোমেননেম ব্যবহার করুন

এটি ডবল পুনঃনির্দেশগুলি এড়াতে পারবেন (http: // www থেকে http: // www এবং তারপরে https: // www)

<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^(.*)$ https://www.%1$1 [R=301,L]
</VirtualHost>

এবং

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

আপনার পুনর্নির্দেশ কোড 301 সবচেয়ে সুবিধাজনক কোডে পরিবর্তন করা উচিত


-1

উপরের সমাধানটি যদি দুটি <VirtualHost *:80>ব্লকের সাথে বিভিন্ন ServerNameএস ব্যবহার করে ...

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

... তারপর আপনি সেট করতে হবে NameVirtualHost Onপাশাপাশি

আপনি যদি এটি না করেন তবে অ্যাপাচি ServerNameব্লকগুলি আলাদা করতে আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা ব্যবহার করার অনুমতি দেয় না তাই আপনি এই ত্রুটি বার্তাটি পান:

[warn] _default_ VirtualHost overlap on port 80, the first has precedence

... এবং হয় কোনও পুনঃনির্দেশ ঘটে না, বা আপনি প্রথমে কোন ব্লকটি রেখেছেন তার উপর নির্ভর করে আপনার একটি অসীম পুনঃনির্দেশ লুপ রয়েছে।


-1

আমার ডাব্লুপি মাল্টিসাইটে একই কাজ ছিল, যেখানে পুনর্নির্দেশের নিয়মটি জেনেরিক হতে হয়েছিল (যে কোনও ডোমেনের জন্য আমি নেটওয়ার্কে যুক্ত করব)। আমি প্রথমে ডোমেনে (পার্কযুক্ত ডোমেন) একটি ওয়াইল্ডকার্ড যুক্ত করার সমাধান করেছি। নোট করুন। .কম পরে।

CNAME * domain.com.

এবং তারপরে আমি আমার মাল্টিসাইটের মূলের .htaccess ফাইলটিতে নিম্নলিখিত লাইনগুলি যুক্ত করেছি। আমার ধারণা এটি কোনও সাইটের পক্ষে কাজ করবে।

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

আশা করি এটি সাহায্য করবে।

পুনশ্চ. আপনি যদি www থেকে www তে পুনঃনির্দেশ করতে চান তবে শেষ লাইনটি এতে পরিবর্তন করুন

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

-2

আমি একাধিক vhosts ব্যবহার করার সময় সার্ভারআলিয়াস ব্যবহার করা আরও সহজ (এবং আরও দরকারী) বলে মনে করেছি।

<VirtualHost x.x.x.x:80>
    ServerName www.example.com
    ServerAlias example.com
    ....
</VirtualHost>

এটি https vhosts এর সাথেও কাজ করে।


আরেকটি ড্রাইভ বাই ডাউনভোট। বোঝানোর জন্য যত্নশীল, ওহে শক্তিশালী godশ্বর এইচডিডি কে বোঝা যায় না?
অ্যান্টনি

1
এটি এমনটি করে যাতে আপনার একই সাইটটিতে হোস্টিংয়ের একাধিক ডোমেন থাকে। আপনার পরিস্থিতি এবং আপনার অন্তর্নিহিত ওয়েবসার্ভারটি কী চলছে তার উপর নির্ভর করে আপনার কুকিজগুলি বহন না করানো, লোকজন বিভ্রান্ত হওয়া এবং অনুসন্ধান ইঞ্জিন সমস্যা (যা এটি 2 টি ভিন্ন সাইট হিসাবে দেখবে) নিয়ে সমস্যা হতে চলেছে।
জেফ্রি ভ্যান অ্যালস্টাইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.