এনগিনেক্সের ট্রাই_ফায়ালগুলি পুনরায় লেখা হচ্ছে


8

আমি নীচের মতো দেখতে আগের এনগিনেক্স সংস্করণ থেকে খুব সাধারণ পুনর্লিখনকে বর্তমানের রূপান্তর করার চেষ্টা করছি:

location / {
   if ( !-f $request_filename ) {
     rewrite ^/([a-z]*)$ /index.php?action=$1;
     rewrite ^/([a-z]*)/(.*)$ /index.php?action=$1&item=$2;
   }
}

এভাবেই আমি পৌঁছে গেছি। সূচক পৃষ্ঠাটি প্রদর্শিত হবে তবে যে কোনও পৃষ্ঠা যা উপরের মতো আবারও লেখা উচিত, তার পরিবর্তে 404 টি নিক্ষেপ করবে:

server {

    listen 80 default;
    root /var/www;
    index index.php;
    server_name _;

    location / {
        try_files $uri $uri/ /index.php?action=$uri&item=$args;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

আমি এখানে কি ভুল করছি?


ঠিক কী হচ্ছে? সমস্যার অংশটি হ'ল $ ইউরি এবং $ আরোগুলি সঠিকভাবে এনকোড করা হয়নি।
লুক

404 সঙ্গে নিক্ষিপ্ত হয় File not found. যদি আমি হয় URI ব্যবহার করা /pageবা/page/id
শিল্প

আপনি যখন ঠিক করবেন তখন কি হবে try_files $uri $uri/ /index.php?
লুক

সূচক.এফপি চমৎকারভাবে কাজ করে তবে যা কিছু নতুন করে লেখা উচিত 404-এর দশকে শেষ হয়
শিল্প

ব্যবহার করে দেখুন try_files $uri $uri/ /index.php?$args। আপনার সাথে URL টি পেতে সক্ষম হওয়া উচিত $_SERVER['REQUEST_URI']। G _গেটের স্বাভাবিকভাবে কাজ করা উচিত।
লুক

উত্তর:


9

এই কাজ করা উচিত:

location / { 
    try_files $uri $uri/ @rules; 
} 

location @rules { 
    rewrite ^/([a-z]*)$ /index.php?action=$1; 
    rewrite ^/([a-z]*)/(.*)$ /index.php?action=$1&item=$2; 
}

location /index.php { 
    fastcgi_pass 127.0.0.1:9000; 
    include fastcgi_params; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
}

হুম। আপনার প্রথম উদাহরণে, ইনডেক্স.এফপি লোড হবে তবে কোনও স্থির ফাইল বা ইউআরআই অনুরোধ যেমন /page1/itemসূচি ফিরিয়ে দেবে
শিল্প

অদ্ভুত জিনিস. চেষ্টা_ফায়ালদের এটি যত্ন নেওয়া উচিত।
লুক

দ্বিতীয় উদাহরণটিও চেষ্টা করে দেখেছি। সেখানে একই সমস্যা
শিল্প

আমি ধরে নিচ্ছি try_files $uri $uri/স্থির ফাইলগুলির সাথে কাজ করে?
লুক

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