এনজিনেক্স পুনর্লিখন একটি ইউআরএল শেষে একটি প্যারামিটার যুক্ত করে


13

আমাকে আমার বিপরীত প্রক্সিটি কনফিগার করতে হবে যাতে url এর শেষে নীচের প্যারামিটার যুক্ত হবে: &locale=de-de

এটি প্রায় কাজ করে:

rewrite ^(.*)$ $1&locale=de-de break;

তবে, সমস্যাটি হ'ল আমাকে আগেই '& লোকেল = ডি-ডি' যুক্ত করতে হবে যদি এটি ইতিমধ্যে সেখানে না থাকে এবং যদি সেখানে 'থাকে?' ইউআরএল ...

এটি করার জন্য আমি কি সঠিক রেজেক্স তৈরি করতে কিছু সহায়তা পেতে পারি?

অন্য প্রশ্ন: আমি যদি এটি ব্যবহার করে তবে আমার ইউআরএলটিতে প্রশ্ন চিহ্নটি কেন প্রদর্শিত হচ্ছে না:
$ ইউরি?। আরগস

অথবা $ uri $ is_args $ আরগগুলি এনক্রোড না হওয়া url অনুবাদ করে এবং প্রশ্ন চিহ্নটি% 3f হিসাবে দেখানো হয়।

ধারনা?

সম্পাদনা: মনে হচ্ছে প্রক্সি_পাসের সাথে সংমিশ্রণ করার সময় এই আচরণটি বিদ্যমান। একটি সাধারণ পুনর্লিখনে এটি সত্যই ভাল কাজ করে।

উত্তর:


15
  1. ইন rewriteআপনি URL- এর বিরুদ্ধে মেলে পথ অংশ মাত্র। যার অর্থ, $1কোয়েরি স্ট্রিং থাকবে না।
  2. ডিফল্টরূপে, এনগিনেক্স পুনরায় লেখার প্রতিস্থাপনে মূল ক্যোরিয় স্ট্রিং যুক্ত করে।

সুতরাং, এটি লিখতে নিরাপদ হওয়া উচিত

rewrite ^(.*)$ $1?locale=de-de break;

আপনি যদি নাগিনেক্সকে মূল ক্যোয়ারী স্ট্রিং যুক্ত করতে চান না, কেবল ?প্রতিস্থাপন URL এর শেষে নির্দিষ্ট করুন :

rewrite ^(.*)$ $1?locale=de-de? break;

ধন্যবাদ! আমি দেখতে পাইনি যে আমি এটি ভুল উপায়ে করার চেষ্টা করেছি।
সাসচা

এ + এটি সেরা উত্তর
আপনাকে ধন্যবাদ

3

এর জন্য rewriteমিলটিতে ক্যোয়ারী প্যারামগুলি অন্তর্ভুক্ত নয়, সুতরাং এর জন্য আপনাকে অন্য কোথাও পরীক্ষা করা দরকার।

চেষ্টা করুন:

if ($args !~* locale=de\-de){
    rewrite ^(.*)$ $1&locale=de-de last;
}


@ আলেকজান্দার ভাল পয়েন্ট; যে rewriteচাহিদা একটি lastযদি নিরাপদ করতে হবে। সম্পাদনা করা হয়েছে।
শেন ম্যাডেন

3

rewriteঅনুরোধ মাপকাঠিগুলি, কোনো URI একমাত্র পথ অংশ সংশোধন করা হয় না। আমার অভিজ্ঞতায় পুনর্লিখনের সাথে জগাখিচুড়ি অদ্ভুত চক্রের দিকে নিয়ে যায়, যেখানে নতুন প্যারামিটারটি অ্যাড ইনফিনিটাম যুক্ত হয়। পুনর্লিখন সম্ভবত এনগিনেক্সে এটি করার উপায় নয়।

পরিবর্তে, আপনাকে নির্দেশটি $argsব্যবহার করে চলকটি পরিবর্তন করতে হবে set:

set $args $args&locale=de-de;

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