জেনেরিক এইচটিসেস 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 ছাড়াই ক্যানোনিকাল নামটি সেট করছেন। এছাড়াও যদি আপনার লিঙ্কগুলিতে নিখুঁত url থাকে তবে তা নিশ্চিত করুন যে সেগুলিও সমস্ত অ-www।
জেরেমি মরগান

আমার মনে স্পষ্টতই পুনর্নির্দেশনা রাখা আরও ভাল, বিশেষত অন্য ডোমেনের জন্য কনফিগারেশনটি অনুলিপি করার সময়, এর জন্য বিভিন্ন টিউনিংয়ের প্রয়োজন হতে পারে (www ডোমেইন কিছু ক্ষেত্রে ভাল) ওয়েবোপটিমাইজার.চ.সি.আর
স্নোফ্লেক

এই সমাধানটি রুট ইউআরএল ব্যতীত অন্য সকল ক্ষেত্রে কাজ করবে কেন? উদাহরণস্বরূপ domain.com নেই piont করার domain.com , যেহেতু domain.com/page1 পুনর্চালনা করে domain.com/page1
জেফ সলোমন

আপনি যদি প্রোটোকল (এইচটিটিপি বা এইচটিটিপিএস) বজায় রেখে
www- নন-www-

উত্তর:


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

মাইকেল এর একই কাজ ছাড়া এটি কাজ করে: পি


16
যদি এটি কাজ না করে তবে আপনি সম্ভবত RewriteEngine Onএটির কাজটি করার জন্য পূর্বসূরিকে মিস করছেন ।
হেন্ড্রি

8
@Ben, কিভাবে আমি বিপরীত এই ব্যবহার করেন, এর যোগ একটি অ-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] এবং এটি এখন পর্যন্ত কাজ করছে বলে মনে হচ্ছে
ববফেট 1

5
পুনরায় লেখার ইঞ্জিনের পরিবর্তে দয়া করে নীচের সমাধানটি ব্যবহার করুন, মার্জিত হওয়ার সময় এটি আরও দ্রুত: স্ট্যাকওভারফ্লো
বিরলা

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/ উদাহরণ.com.com এ পুনঃনির্দেশ করে? অতিরিক্ত স্ল্যাশ সরানোর কোনও উপায়?
ববি এস

ভাল প্রশ্ন. আমার ধারণা দ্রুত সমাধানটি উপরোক্ত বর্ণিতগুলির আগে অতিরিক্ত বিধিগুলি (যেমন কেবলমাত্র এই ক্ষেত্রে) ব্যবহার করা হবে। যেমন: RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^www.example.com/$ [NC] RewriteRule ^(.*)$ http://www.example.com [R=301,L] ...
অ্যান্ড্রন

3
@ ববিস আমি এই নিবন্ধে সমাধানটি ব্যবহার করেছি । এটি www এবং HTTP কে নন-ডাব্লু এইচটিটিপিএসে পুনঃনির্দেশ করে এবং এগুলি অনুসরণ করতেও পরিচালনা করে /
টোটেমেডলি

আপনি কেবলমাত্র সার্ভার কনফিগারেশনে (বা ভার্চুয়ালহোস্ট) এই নির্দেশাবলী স্থাপন করে থাকলে আপনি কেবল একটি অতিরিক্ত স্ল্যাশ পাবেন (ইউআরএল-পাথের শুরুতে)। ইন .htaccessআপনি একটি অতিরিক্ত স্ল্যাশ না পেয়ে করা উচিত। (কেবলমাত্র লক্ষণীয়, আপনি যদি সার্ভার কনফিগারেশনে এই পুনঃনির্দেশ সম্পাদন করে থাকেন তবে আপনি সম্ভবত শুরু করতে মোড_আরাইট ব্যবহার করবেন না ... Redirectউপযুক্ত ভোস্ট ধারকটিতে একটি সাধারণ মোড_ালিয়াস আরও দক্ষ এবং ত্রুটির প্রবণতা কম হবে))
মিঃ হোয়াইট

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
@ নাইটকোডার কারণ এটি আমার বিপরীত পুনঃনির্দেশের জন্য সমাধানটি (অ-www থেকে www-তে) অ্যান্ড্রনের বিপরীতে
দিমিত্রি

2
দ্রষ্টব্য: আপনি যদি অন্য উদ্দেশ্যে সাবডোমেন নাম ব্যবহার করতে চান তবে এই সমাধানটি কিছু সমস্যা তৈরি করতে পারে। উদাহরণস্বরূপ, app.yourdomain.com www.app.yourdomain.com এ পুনঃনির্দেশিত হবে।
মার্টি ZHANG

1
এটি প্রশ্নের উত্তরের ঠিক বিপরীত।
জন

আমাকে যুক্ত করতে হয়েছিল RewriteEngine Onএবং RewriteBase /, তবে অন্যথায় ভাল কাজ করেছে।
21:58

45

আপনি যদি httpd.conf ফাইলে এটি করতে চান, আপনি মোড_উইরাইট ছাড়াই এটি করতে পারেন (এবং সম্ভবত এটি কার্য সম্পাদনের পক্ষে আরও ভাল)।

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

আমি এখানে উত্তর পেয়েছি: /server/120488/redirect-url-within-apache-virtualhost/120507#120507


33

এখানে একটি www ইউআরএলকে নো-www তে পুনঃনির্দেশ করার নিয়মগুলি রয়েছে:

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

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

এখানে কোনও নো-ইউএসএল ইউআরএলকে 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%20bartohttp://www.example.com/?foo%2250bar


1
আপনি কি
এইচটিএমএলকে

এটি পরিবর্তিত হলে HTTPS এ জোর করতে http: // থেকে https: // পরিবর্তন করুন। আপনি ট্র্যাফিকের জন্য একটি নিয়মিত http-> https পুনর্নির্দেশ যোগ করতে চাইবেন যা এই নিয়মগুলি দ্বারা পুনঃনির্দেশিত হয় না।
ডায়মন্ডসিয়া

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

RewriteCondমধ্যে যেমনটি সবকিছু HTTP_HOSTপরিবর্তনশীল পরwww. এবং এটি সংরক্ষণ%1

RewriteRuleযেমনটি নেতৃস্থানীয় ছাড়া URL টি /এবং এটি সংরক্ষণ $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" বন্ধ করুন take


1
রবার্গ, দুর্ভাগ্যক্রমে আপনার সেটিংস কাজ করে না, যদি আমি এটি চেষ্টা করি: উদাহরণ. com/hello/world আমি এখানেই শেষ করি : উদাহরণ. com/hello/world/world এছাড়াও আমাকে% {HTTP_POST after এর পরে স্ল্যাশ যুক্ত করতে হয়েছিল প্রথম
পুনর্লিখনের নিয়ম

2
আমি অ্যাপাচি / ২.২.৯ (ইউনিক্স) ব্যবহার করছি। এটি www.website এর জন্য কাজ করে, যা ওয়েবসাইটটিতে পুনঃনির্দেশ করে তবে নিম্নলিখিতগুলির জন্য: ওয়েবসাইট / পরীক্ষা -> এতে যায়: ওয়েবসাইটস্টেস্ট আমি এটিকে অন্য / দ্বিতীয় ত্রুটি যুক্ত করে স্থির করেছিলাম: ওয়েবসাইট / পরীক্ষা / এন ওয়েবসাইটস্টেটে
ডিপওয়েল

1
এটির সাথে @ ডিপওয়েল হিসাবে একই সমস্যা।
নিমজ্জি

বিষয় আগেই পাঠকদের ভুগেন কারণ এই নির্দেশনা সার্ভার কনফিগ (অথবা vhost দেখুন) জন্য দেয়ার উদ্দেশ্যে করা হয়, নয় .htaccess। একটি ডিরেক্টরির প্রসঙ্গ ( .htaccess) আপনি প্রথম পরিবর্তন করা উচিত RewriteRuleপড়তে: RewriteRule ^(.*)$ %{HTTP_HOST}/$1 [C,DPI](এ্যাপাচি প্রয়োজন 2.2.12+)। DPIপূর্ববর্তী মন্তব্যে বর্ণিত হিসাবে স্ল্যাশ এবং (পাথ তথ্য ত্যাগ করুন) পতাকাটি যুক্ত করুন - URL- পাথের কিছু অংশ আপাতদৃষ্টিতে সদৃশ হয়ে যাওয়া (যা আসলে "পথ-তথ্য") রোধ করতে পারে prevent তবে, আরও সহজ সরল নির্দেশনা রয়েছে - যেমন অন্যান্য উত্তরে অন্তর্ভুক্ত।
মিঃ হোয়াইট

7

সম্পূর্ণ জেনেরিক ডাব্লুডাব্লুডাব্লু হ্যান্ডলার, HTTP / https

আমি একটি সম্পূর্ণ উত্তর দেখতে পাইনি। আমি এটি WWW অন্তর্ভুক্তি পরিচালনা করতে ব্যবহার করি inc

  1. জেনেরিক। ডোমেন তথ্য প্রয়োজন হয় না।
  2. প্রাথমিক ডোমেনে WWW জোর করে: www.domain.com
  3. সাবডোমেনসগুলিতে ডাব্লুডাব্লুডাব্লু অপসারণ করে: sub.domain.com
  4. HTTP / HTTPS স্থিতি সংরক্ষণ করে।
  5. ডোমেন / সাব-ডোমেনগুলির জন্য স্বতন্ত্র কুকিগুলিকে মঞ্জুরি দেয়

এটি কীভাবে কাজ করে তা যদি আমাকে জানায় বা আমি যদি একটি ফাঁকফুল রেখে যাই Please

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 পুনঃনির্দেশ সম্পর্কে অনেক ভুল তথ্য হতে পারে I প্রথমে নিশ্চিত হয়ে নিন যে আপনার সাইটটি ইউপাতে অ্যাপাচি ব্যবহার করে চলছে এবং কোনও উইন্ডোজ হোস্টে নয়, যদি আপনি এই কোডটি কাজ করার প্রত্যাশা করেন।

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সমস্ত সময় পুনঃনির্দেশ করা উচিত ))
মিঃ হোইট

3

Www বা নন-www এ পুনঃনির্দেশ করতে .htaccess ব্যবহার করে:

কেবলমাত্র আপনার মূল, মূল .htaccess ফাইলে কোডের নীচের লাইনগুলি রেখে দিন। উভয় ক্ষেত্রেই কেবল ডোমেন ডটকমকে নিজের হোস্টনেমে পরিবর্তন করুন।

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 কে www-তে কোনও www তে fwd করতে ব্যবহার করেছি এবং এটি হোমপেজের জন্য ঠিক কাজ করে, তবে অভ্যন্তরীণ পৃষ্ঠাগুলিতে তারা /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]

আপনার উদ্ধৃত হওয়াগুলির পূর্বে আপনাকে নন-ডাব্লু রিডাইরেশনের নিয়মগুলি রাখতে হবে।
ভ্লাদিমির জোভানোভিć


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]

এটি নন এসএসএল পুনর্নির্দেশ করে

প্রতি

এবং এসএসএল

প্রতি

Apache উপর 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]

এবং পিএইচপি পদ্ধতি:

$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 এ বা এসএসএল প্রোটোটকোলকে জোর করে, তারপরে htaccess ফাইলে সম্ভাব্য প্রকরণগুলি ব্যবহার করার চেষ্টা করুন, যেমন:

পুনরায় লিখুন
পুনর্লিখন বেস /

### ফোর্স ডাব্লুডব্লিউ ###

RewritCond% {HTTP_HOST ^ ^ উদাহরণ \। কম
পুনর্লিখন (। *) Http://www.example.com/$1 [আর = 301, এল]

## এসএসএল জোর করুন ###

রিরাইটকন্ড% {SERVER_PORT} 80 
পুনর্লিখন ule (। *) $ Https://example.com/ex1 [আর, এল]

## ব্লকের আইপি এর ###
আদেশ অস্বীকার, অনুমতি দিন
256.251.0.139 থেকে অস্বীকার করুন
199.127.0.259 থেকে অস্বীকার করুন

অ্যাপাচি আরেকটি বন্দর শুনতে পারে, উদাহরণস্বরূপ, ৮১. সুতরাং পরিবর্তে RewriteCond %{SERVER_PORT} 80আমি এই জাতীয় আরও সার্বজনীন চেক ব্যবহার করার পরামর্শ দিই:RewriteCond %{HTTPS} off
অ্যান্ড্রন

1

নির্বাচিত উত্তর এবং আরও অনেক সমাধান এখানে / এর পরে ইউআরএলের অংশটি ফেলেছে, সুতরাং মূলত এটি সর্বদা প্রধান ডোমেইনে পুনঃনির্দেশিত হয়, কমপক্ষে আমার জন্য .. সুতরাং আমি স্ল্যাশের পরে সম্পূর্ণ পথের প্রতি শ্রদ্ধাশীল নমুনা যুক্ত করছি ..

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

1

.Htaccess কাস্টমাইজেশন আদর্শ বিকল্প না হলে বিকল্প পদ্ধতি:

আমি জনসাধারণের ব্যবহারের জন্য সহজ পুনর্নির্দেশ সার্ভার তৈরি করেছি। কেবল এ বা সিএনএম রেকর্ড যুক্ত করুন:

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]

এবং এই স্ক্রিপ্টটির সুবিধা হ'ল: যদি আপনার কাছে টেস্ট.ভাইটাইম.কম বা অন্য কোনও (বিকাশ / পরীক্ষার জন্য পরিবেশ) এর মতো কিছু থাকে তবে এটি ইউটিকে মূল পরিবেশে পুনঃনির্দেশ করবে না।


2
ডাব্লু সাবডোমেনটি অন্তর্ভুক্ত করা উচিত কি না তা প্রকৃতপক্ষে ব্যক্তিগত পছন্দের বিষয় এবং এটি ডোমেন নাম এবং লক্ষ্য দর্শকদের উপর নির্ভর করতে পারে। Www কে নন-www তে পুনঃনির্দেশের জন্য উপরের পোস্ট করা জেনেরিক কোডও পরীক্ষার পরিবেশগুলি ঠিকঠাক পরিচালনা করে, যেহেতু পুনর্নির্দেশ তখনই ঘটে যখন "www।" সাবডোমেন সম্মুখীন হয়েছে।
মিঃ হোয়াইট

1
এই প্রশ্নটি ব্যবহারকারী যা জিজ্ঞাসা করছে তার বিপরীত কাজ করে যা কেবলমাত্র পোস্টটিকে দূষিত করছে।
ভাদিম

0

এটি অ্যাপাচি ২.৪-এ কাজ করার জন্য আপডেট হয়েছে:

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

মাইকেল এর বনাম একমাত্র পরিবর্তন হ'ল এটি মুছে ফেলা [NC], যা "এইএএচ 600665" ত্রুটি তৈরি করে:

নন-রেজেক্স প্যাটার্ন '-f' এর জন্য নোকেস বিকল্পটি সমর্থিত নয় এবং তা উপেক্ষা করা হবে


আগের উত্তরের "অ্যাপাচি ২.৪-তে কাজ করার জন্য আপডেট করার দরকার নেই"। আপনি যে "সতর্কতা "টি উদ্ধৃত করছেন (এএএচ 600665) একটি অন্যরকম নির্দেশের সাথে সম্পর্কিত (যেমন, যদি আপনার মতো কিছু থাকে 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

হাই আপনি নিজের এইচটিসেসি ফাইলে নিম্নলিখিত বিধিগুলি ব্যবহার করতে পারেন:

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

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