কিভাবে www থেকে নন-ডাব্লু ডোমেইনে পুনর্নির্দেশের জন্য এনগিনেক্স পাবেন?


9

ধরা যাক আমি www.example.com থেকে উদাহরণ.কম এ পুনঃনির্দেশ করতে চাই এবং আমি এনজিএনএক্স ব্যবহার করে এটি করতে চাই। আমি চারপাশে তাকিয়েছি এবং এটিতে কোনও ভাল ডকুমেন্টেশন দেখতে পাইনি তাই আমি ভেবেছিলাম যে আমি নিজের প্রশ্নটি জিজ্ঞাসা করব এবং উত্তর দেব।

উত্তর:


7

আমি এটিকে এনগিনেক্স উইকি এবং অন্যান্য ব্লগেও দেখেছি এবং নিম্নলিখিত পদ্ধতিটি সম্পাদন করার জন্য সর্বোত্তম উপায়:

এনগিনেক্স ব্যবহার করে www.example.com থেকে উদাহরণ.com এ পুনর্নির্দেশ করতে (লেখার সময় 1.0.12 সংস্করণ)।

server {
  server_name www.example.com;
  rewrite ^ $scheme://example.com$request_uri permanent; 
  # permanent sends a 301 redirect whereas redirect sends a 302 temporary redirect
  # $scheme uses http or https accordingly
}

server {
  server_name example.com;
  # the rest of your config goes here
}

অনুরোধগুলি উদাহরণ.কম এ আসলে, যদি বিবৃতিগুলি পারফরম্যান্সের জন্য ব্যবহার করা হয় তবে তা নয়। এবং এটিতে $ 1_ ম্যাচ তৈরির পরিবর্তে $ অনুরোধ_রি ব্যবহার করে যা পুনর্লিখনকে ট্যাক্স করে (এনগিনেক্স সাধারণ সমস্যাগুলি পৃষ্ঠা দেখুন)।

সূত্র:


আমার পরীক্ষায়, নির্দেশগুলি অবশ্যই বিপরীত হওয়া উচিত, অর্থাৎ। পুনর্লিখনের একটি অবশ্যই মূল server {}কনফিগারেশন ব্লকের পরে আসতে হবে ।
karmi

4

কিছু কাছাকাছি খনন এবং কিছু মিসটপস পরে, সমাধান এখানে। আমি যে গোটাচাটি চালিয়েছি তা হ'ল " http://example.com $ uri" ব্যবহার নিশ্চিত করা । / ইউরির সামনে / প্রবেশের ফলে http://example.com// এ পুনঃনির্দেশ

  server {
    listen 80;
    server_name www.example.com;
    rewrite ^ http://example.com$uri permanent;
  }

  # the server directive is nginx's virtual host directive.
  server {
    # port to listen on. Can also be set to an IP:PORT
    listen 80;

    # Set the charset
    charset utf-8;

    # Set the max size for file uploads to 10Mb
    client_max_body_size 10M;

    # sets the domain[s] that this vhost server requests for
    server_name example.com;

    # doc root
    root /var/www/example.com;

    # vhost specific access log
    access_log  /var/log/nginx_access.log  main;


    # set vary to off to avoid duplicate headers
    gzip off;
    gzip_vary off;


    # Set image format types to expire in a very long time
    location ~* ^.+\.(jpg|jpeg|gif|png|ico)$ {
        access_log off;
        expires max;
    }

    # Set css and js to expire in a very long time
    location ~* ^.+\.(css|js)$ {
        access_log off;
        expires max;
    }

    # Catchall for everything else
    location / {
      root /var/www/example.com;
      access_log off;

      index index.html;
      expires 1d;

      if (-f $request_filename) {
        break;
      }
    }
  }

4

এই প্রশ্নটি SO: https://stackoverflow.com/a/11733363/846634 এ দেখুন visit

আরও ভাল উত্তর থেকে:

আসলে আপনার আবার লেখার দরকার নেই।

server {
    #listen 80 is default
    server_name www.example.com;
    return 301 $scheme://example.com$request_uri;
}

server {
    #listen 80 is default
    server_name example.com;
    ## here goes the rest of your conf...
}

আমার উত্তরটি যত বেশি ভোট পাচ্ছে তবে উপরেরটিও। আপনার rewriteএই প্রসঙ্গে কখনও ব্যবহার করা উচিত নয় । কেন? কারণ nginx একটি প্রক্রিয়া এবং একটি অনুসন্ধান শুরু করতে হবে। আপনি যদি ব্যবহার করেন return(যা কোনও এনগিনেক্স সংস্করণে পাওয়া উচিত) এটি সরাসরি কার্যকর করা বন্ধ করে দেয়। এটি যে কোনও প্রসঙ্গে পছন্দ করা হয়।


1

নন-www তে পুনঃনির্দেশ করতে, ভোস্ট ফাইলটি সংশোধন করুন:

server {
  listen 80;
  server_name www.example.com;
  rewrite ^/(.*) http://example.com/$1 permanent;
}

'স্থায়ী' পুনর্নির্দেশকে 301 পুনর্নির্দেশে রূপান্তরিত করে। এই কোডটি ব্লক করার পরে, আপনি www ছাড়াই ডোমেনটি কনফিগার করতে পারেন।

নন-ডাব্লু-কে www তে পুনঃনির্দেশের জন্য:

server {
  listen 80;
  server_name example.com;
  rewrite ^/(.*) http://www.example.com/$1 permanent;
}

Thassit।

বিটিডাব্লু, এনজিএনএক্স ব্যবহার করে সম্পূর্ণ ভিপিএস সেটআপের জন্য, আমার সাইটে, গুভনর ডটকম, এবং ভিপিএস বাইবেলটি দেখুন এবং আমি আশা করি এটি কার্যকর!


0

এটি আমি ব্যবহার করি:

# ---------------------------------------
# vHost www.example.com
# ---------------------------------------

server {

##
# Redirect www.domain.tld
##

    server_name  www.example.com;
    rewrite ^(.*) http://example.com$1 permanent;

}

# ---------------------------------------
# vHost example.com
# ---------------------------------------

server {

   # Something Something
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.