এনগিনেক্স পুনর্লিখন কোয়েরিস্ট্রিংকে পথে রূপান্তর করে


11

আমি এই সাধারণ পুনর্লিখনের নিয়মটি পছন্দ করি:

/somefolder/mypage.aspx?myid=4343&tab=overview

এটিকে পুনঃনির্দেশিত করতে:

/folder/4343/overview/

আমি কিছু সমাধান সন্ধান করেছি এবং বাস্তবে কেউ কাজ করেনি ..

আমি চেষ্টা করেছিলাম:

rewrite ^/somefolder/mypage.aspx?myid=(.*)&tab=overview$  /folder/$1/overview  permanent;

এবং

rewrite ^/somefolder/mypage\.aspx\?myid=(.*)&tab=overview$  /folder/$1/overview  permanent;

আমি কি ভুল করছি? আমি 404 পাচ্ছি

(সরল নিয়ম ঠিক কাজ করে ..)

ধন্যবাদ

উত্তর:


12

আপনি যদি পুনর্নির্দেশ করতে চান

location ~ /somefolder/mypage.aspx {
    if ($args ~* "^myid=(\d+)&tab=overview") {
        set $mid $1;
        set $args '';
        rewrite ^.*$ /folder/$mid/overview permanent;
    }
}

/ ফোল্ডার / $ 1 / ওভারভিউ অবস্থান কনফিগার করতে ভুলবেন না।


ধন্যবাদ, পুনর্নির্দেশ কাজ করে, তবে প্যারামিটার ছাড়াই ($ 1) ... এটি ফাঁকা
ইয়ার্ডেনস্ট

আমি উত্তর আপডেট।
ভ্যালারি ভিক্টোরিভস্কি

32

ভ্যালারি ভিক্টোরিভস্কি উত্তরের একটি সংক্ষিপ্ত এবং আরও সঠিক সংস্করণ।

location = /somefolder/mypage.aspx {
    if ($arg_tab != overview) { return 404; }
    if ($arg_myid !~ "^\d+$") { return 404; }
    rewrite ^ /folder/$arg_myid/overview? permanent;
}

অথবা, আরে, এটি আরও ছোট করা যেতে পারে, যদি আপনার যুক্তিগুলি যাচাই করার দরকার না হয়:

rewrite ^/somefolder/mypage.aspx /folder/$arg_myid/$arg_tab? permanent;

আশা করি আপনি এটি পোস্ট করেছেন আগে :) এটি আমার কিছুটা সময় বাঁচাতে পারত
ইয়র্দনস্ট

হাঃ হাঃ হাঃ. আপনার কি এমন অনেক নিয়ম ছিল? ওয়েল, কখনও বেশী ভালো দেরী! এছাড়াও, আমি একটি গ্রহণ করতে পারেন, তাহলে? :)
সিএনএস

ভ্যালিরি
সলিউশনটি

9
meta.stackexchange.com/questions/5234/… « আপনার পক্ষে কাজ করার পাশাপাশি উত্তরটি সত্যিই ভাল অনুশীলন কিনা তা নিশ্চিত করুন। কখনও কখনও উত্তর গৃহীত হওয়ার পরে, আরেকটি আসে, পূর্ববর্তীটি আসলে একটি খারাপ হ্যাক ছিল তা উন্মোচন করে। »সিরিয়াসলি, ভ্যালারির উত্তর নিয়ে কেবল একটিই নয়, বেশ কয়েকটি ভিন্ন সমস্যা রয়েছে! প্রতিটি লাইন মূলত ভুল, কোঁকড়া ধনুর্বন্ধনী ছাড়া অন্য!
সিএনএস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.