nginx: একটি অবস্থান ব্যতীত সমস্তই আবার লিখুন


11

এই মুহুর্তে আমার এনজিনেক্সগুলি একটি প্রধান ডোমেনে বেশ কয়েকটি ডোমেন পুনরায় লিখছে যা আমরা ব্যবহার করছি। আমার কনফিগারেশন থেকে একটি নিয়ম এখানে:

server {
  listen X.X.X.X:80;
  server_name .exampleblog.org;
  rewrite ^(.*) http://blog.example.org$1 permanent;
}

** exampleblog.org * এর প্রতিটি অনুরোধটি blog.example.org এ পুনঃনির্দেশিত

এখন আমি www.exampleblog.org/+ এবং exampleblog.org/+ ব্যবহারকারীকে আমাদের গুগল প্লাস পৃষ্ঠাতে পুনর্নির্দেশ করতে চাই । এটি এর বিভিন্ন সংস্করণ চেষ্টা করেছে:

server {
  listen X.X.X.X:80;
  server_name .exampleblog.org;
  location /+ {
    rewrite ^ https://plus.google.com/12345678901234567890/ permanent;
  }
  rewrite ^(.*) http://blog.example.org$1 permanent;
}

উপরে এবং অন্যান্য সংস্করণগুলি কেবল blog.example.org/+ এ পুনঃনির্দেশ করুন - আমি কী ভুল করছি?

উত্তর:


14

এনগিনেক্সে নির্দেশাবলী প্রয়োজনীয়ভাবে তারা যেভাবে কনফিগারেশন ফাইলে প্রদর্শিত হবে তা প্রয়োগ করে না। সার্ভার-স্তরের পুনর্লিখন কোনও অবস্থান বাছাইয়ের আগে কাজ করে এবং এটি সর্বদা মেলে তাই এটি সবকিছু পুনর্নির্দেশ করবে। আপনার মতো দ্বিতীয় অবস্থান দরকার:

server {
  listen x.x.x.x:80;
  server_name .exampleblog.org;

  # Match /+ requests exactly    
  location = /+ {
    # I prefer return 301 instead of rewrite ^ <target> permanent,
    # but you can use either
    return 301 http://plus.google.com/1234567890/;
  }

  # Match everything else
  location / {
    return 301 http://blog.example.org$request_uri;
  }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.