এনগিনেক্সে অবস্থান থেকে আমি কীভাবে ভেরিয়েবল পাব?


13

Nginx কনফ থেকে অবস্থান:

location ~/photos/resize/(\d+)/(\d+) {
    # Here var1=(\d+), var2=(\d+)
}

এনগিনেক্সে অবস্থান থেকে আমি কীভাবে ভেরিয়েবল পাব?

উত্তর:


17

রেজেক্স এটির মতো অন্যান্য জায়গাগুলির মতো বেশ কাজ করে।

location ~/photos/resize/(\d+)/(\d+) {
  # use $1 for the first \d+ and $2 for the second, and so on.
}

এনজিঙ্ক্স উইকিতে উদাহরণগুলি দেখলে, http://wiki.nginx.org/ কনফিগারেশনও সহায়তা করতে পারে


12

পূর্ববর্তী উত্তরগুলি ছাড়াও, আপনি রেইগেক্স বন্দী গোষ্ঠীর নামগুলিও সেট করতে পারেন যাতে তাদের পরে উল্লেখ করা আরও সহজ হয়;

location ~/photos/resize/(?<width>(\d+))/(?<height>(\d+)) {
  # so here you can use the $width and the $height variables
}

এনজিআইএনএক্স দেখুন: ব্যবহারের উদাহরণের জন্য $ দূরবর্তী_ ব্যবহারকারীর অবস্থানের প্রথম অংশের সমান কিনা তা পরীক্ষা করে দেখুন ।


এটি স্পষ্টতই প্রয়োজনীয়, যদি অন্য রেইগেক্স এবং রেজেক্স ক্যাপচার গ্রুপগুলির সাথে অন্য নেস্টেড অবস্থানও থাকে । কারণ সেই অন্যান্য জায়গার ভিতরে, $1 $2 $3ইত্যাদি নেস্টেড রেজেক্স থেকে মানগুলি উল্লেখ করবে $1 $2 ...এবং বাইরের রেজেক্সে ওভাররাইট করবে । একটি alias /$1মধ্যে বাইরের Regex ব্যবহার করব $1থেকে ভেতরের Regex, যা সম্ভবত ফলাফল ফাইল-খুঁজে পাওয়া যায়নি।
কাজম্যাগনুস

1
আমি মনে করি আপনি কেবল (?<width>\d+)পরিবর্তে লিখতে পারেন (?<width>(\d+)), বা এর অন্য কোনও কারণ রয়েছে - সম্ভবত $1পাশাপাশি পাওয়ার জন্যও $width?
ক্যামেরন কের

2

আপনি এটি চেষ্টা করতে পারেন:

location ~ ^/photos/resize/.+ {
    rewrite ^/photos/resize/(\d+)/(\d+) /my_resize_script.php?w=$1&h=$2 last;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.