Nginx পুনর্লিখনগুলি ব্যবহার করে "লুকান" .html ফাইল এক্সটেনশান


16

আমি এনগিনেক্সের মাধ্যমে একটি স্ট্যাটিক সাইট পরিবেশন করছি, এবং আমার লক্ষ্যটি ইউআরএল এর মতো দেখতে প্রতিস্থাপন করা:

http://foo.com/bar.html

সঙ্গে

http://foo.com/bar

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

    location / {
        root    /srv/www/foo/public_html;
        index   index.html;
    }

    location /bar1 {
        alias /srv/www/foo/public_html/;
        index bar1.html;
    }

    location /bar2 {
        alias /srv/www/foo/public_html/;
        index bar2.html;
    }

ইত্যাদি। আমি পুনর্লিখনগুলি নিয়ে ডকুমেন্টেশনের মাধ্যমে পড়েছি এবং আমার যা করা দরকার তা নিয়ে যা বলা হচ্ছে তাতে আমি সংশ্লেষিত করতে পারি না। আমি অ্যাপাচি ব্যাকগ্রাউন্ড থেকে আসছি না; এনগিনেক্স ওয়েব সার্ভারগুলিতে আমার প্রথম প্রচারণা তাই আমি নিশ্চিত যে আমার এইচটিটিপি ব্যাকগ্রাউন্ডটি দুর্বল হওয়ায় আমি স্পষ্টত কিছু মিস করছি। তোমার সাহায্যের জন্য অগ্রিম ধন্যবাদ।

উত্তর:


17

try_files আপনি যা চান তা হওয়া উচিত

এটার মতো কিছু:

try_files $uri.html $uri $uri/ =404;

1
এটি সামান্য ব্যতিক্রমের সাথে কাজ করেছিল যে a uri.html একটি 500 তৈরি করছে I আমাকে "$ {uri} .html" ব্যবহার করতে হয়েছিল।
ডগ স্টিফেন

4
এটিকে পরিবর্তন try_files $uri.html $uri/ =404;করা আরও এসইও বুদ্ধিমান হতে পারে, কারণ আপনার কাছে একই উত্সকে নির্দেশ করে দুটি url foobar.com/bar এবং foobar.com/bar.html থাকবে না ।
খাজা মিনহাজউদ্দিন

5

@ খাজার মন্তব্য অনুসারে, সেরা উত্তরটি হ'ল:

try_files $uri.html $uri/ =404;

যাতে সংস্থানটির কেবলমাত্র একটি অনুলিপি পরিবেশন করা হয় (এটি। Html এক্সটেনশন সহ নয়)। ডুপ্লিকেট সামগ্রী সরবরাহ করে এমন একাধিক URL- এর উপরে আপনি আপনার লিঙ্কের শক্তি ভাগ করতে চান না। এখানে ডকুমেন্টেশন সন্ধান করুন


আমি এই চেষ্টা করেছিলাম। try_files $ uri.html $ uri / = 404; এটি মাইআরএল / সূচককে মনোনীত না করে হোমপেজ লোডিং ভেঙে দেয়। সিএসএস, জেএসএস ইত্যাদি লোডও ভেঙে দেয়
উচ্চাভিলাষী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.