কোন ওয়েব সার্ভারটি কীভাবে কাজ করে তা বুঝতে প্রথমে মোড_আরাইটটি বোঝার দরকার। একটি ওয়েব সার্ভার HTTP অনুরোধের প্রতিক্রিয়া জানায় । এটির সবচেয়ে বেসিক স্তরে একটি এইচটিটিপি অনুরোধটি দেখতে এরকম দেখাচ্ছে:
GET /foo/bar.html HTTP/1.1
এটি কোনও ওয়েব সার্ভারের URL টি /foo/bar.html
থেকে URL টি অনুরোধ করার জন্য এটি একটি ব্রাউজারের সাধারণ অনুরোধ । এটি চাপ দেওয়ার জন্য গুরুত্বপূর্ণ যে এটি কোনও ফাইলের জন্য অনুরোধ করে না , এটি কেবল কিছু স্বেচ্ছাসেবী URL এর জন্য অনুরোধ করে। অনুরোধটিও এর মতো দেখতে পারে:
GET /foo/bar?baz=42 HTTP/1.1
এটি ঠিক একটি ইউআরএল-এর অনুরোধ হিসাবে বৈধ এবং এটির সাথে স্পষ্টতই ফাইলগুলির সাথে কোনও সম্পর্ক নেই।
ওয়েব সার্ভারটি একটি বন্দরে শোনার একটি অ্যাপ্লিকেশন, সেই বন্দরে আসা এইচটিটিপি অনুরোধগুলি গ্রহণ করে এবং প্রতিক্রিয়া ফিরিয়ে দেয়। কোনও ওয়েব সার্ভার কোনও অনুরোধের যেভাবেই এটি ফিট / যেভাবে আপনি এটি সাড়াতে কনফিগার করেছেন তাতে কোনও প্রতিক্রিয়া জানাতে সম্পূর্ণ মুক্ত। এই প্রতিক্রিয়াটি কোনও ফাইল নয়, এটি একটি এইচটিটিপি প্রতিক্রিয়া যা কোনও ডিস্কের শারীরিক ফাইলগুলির সাথে কিছু করতে বা থাকতে পারে। একটি ওয়েব সার্ভার অ্যাপাচি হতে হবে না, এমন আরও অনেক ওয়েব সার্ভার রয়েছে যা কেবলমাত্র প্রোগ্রাম যা অবিচ্ছিন্নভাবে চালিত হয় এবং একটি পোর্টের সাথে সংযুক্ত থাকে যা এইচটিটিপি অনুরোধের প্রতিক্রিয়া জানায়। আপনি নিজেই একটি লিখতে পারেন। এই অনুচ্ছেদটি ইউআরএলগুলি সরাসরি ফাইলগুলির সমতুল্য যে ধারণা থেকে আপনাকে তালাক দেওয়ার উদ্দেশ্যে তৈরি হয়েছিল, যা বোঝা সত্যিই গুরুত্বপূর্ণ। :)
বেশিরভাগ ওয়েব সার্ভারের ডিফল্ট কনফিগারেশন হ'ল এমন একটি ফাইল সন্ধান করা যা হার্ড ডিস্কের URL টি মিলবে। যদি নথি রুট সার্ভারের সেট করা থাকে, বলুন, /var/www
তা চেহারা কিনা দায়ের করতে পারেন /var/www/foo/bar.html
বিদ্যমান এবং এটা যদি তাই হয় পরিবেশন করা। যদি ফাইলটি "। Php" এ শেষ হয় তবে এটি পিএইচপি ইন্টারপ্রেটারকে অনুরোধ করবে এবং তারপরে ফলাফলটি ফিরিয়ে দেবে। এই সমস্ত সমিতি সম্পূর্ণরূপে কনফিগারযোগ্য; ওয়েব সার্ভারকে পিএইচপি ইন্টারপ্রেটারের মাধ্যমে এটি চালানোর জন্য কোনও ফাইল ".php" এ শেষ হতে হয় না এবং কিছু ঘটতে URL টি ডিস্কের কোনও নির্দিষ্ট ফাইলের সাথে মেলে না।
অভ্যন্তরীণ অনুরোধ পরিচালনার পুনর্লিখনের জন্য মোড_উইরাইট way যখন ওয়েব সার্ভারটি ইউআরএলটির জন্য একটি অনুরোধ পেয়েছে /foo/bar
, ওয়েব সার্ভারটি এটির সাথে মিলানোর জন্য ডিস্কে কোনও ফাইল সন্ধান করার আগে আপনি সেই URL টি অন্য কোনওটিতে আবার লিখতে পারেন । সাধারণ উদাহরণ:
RewriteEngine On
RewriteRule /foo/bar /foo/baz
এই নিয়মটি বলে যে যখনই কোনও অনুরোধ "/ foo / bar" এর সাথে মেলে, এটি আবার "/ foo / baz" এ লিখুন। অনুরোধটি তখন পরিচালনা করা হবে যেন /foo/baz
পরিবর্তে অনুরোধ করা হয়েছিল। এটি বিভিন্ন প্রভাবের জন্য ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ:
RewriteRule (.*) $1.html
এই নিয়মটি কোনও কিছুর ( .*
) সাথে মেলে এবং এটি ( ) ক্যাপচার করে (..)
, তারপরে এটি ".html" সংযুক্ত করার জন্য এটি পুনর্লিখন করে। অন্য কথায়, যদি /foo/bar
অনুরোধ করা URL ছিল তবে এটি পরিচালনা করা হবে যেমন /foo/bar.html
অনুরোধ করা হয়েছিল। নিয়মিত এক্সপ্রেশন ম্যাচিং, ক্যাপচারিং এবং প্রতিস্থাপন সম্পর্কে আরও তথ্যের জন্য http://regular-expressions.info দেখুন ।
আরেকটি প্রায়শই নিয়মের মুখোমুখি হ'ল:
RewriteRule (.*) index.php?url=$1
এটি আবার কোনও কিছুর সাথে মিলে যায় এবং url
ক্যোয়ারী প্যারামিটারে যুক্ত মূলত অনুরোধ করা ইউআরএল সহ ফাইল সূচি.পি.পি. তে এটি আবার লিখে দেয় । অর্থাত্, যে কোনও এবং সমস্ত অনুরোধগুলি আসার জন্য, ফাইল ইনডেক্স.এফপি সম্পাদিত হয় এবং এই ফাইলটির মূল অনুরোধটিতে অ্যাক্সেস থাকবে $_GET['url']
, সুতরাং এটি এটি দিয়ে যা কিছু করতে পারে তা করতে পারে।
প্রাথমিকভাবে আপনি নিজের ওয়েব সার্ভার কনফিগারেশন ফাইলে এই পুনর্লিখনের নিয়মগুলি রেখেছেন । অ্যাপাচি * আপনাকে সেগুলি .htaccess
আপনার ডকুমেন্টের মূলের (যেমন আপনার .pp ফাইলগুলির পাশের) মধ্যে ডাকা একটি ফাইলে রাখতে দেয় ।
* যদি প্রাথমিক এ্যাপাচি কনফিগারেশন ফাইল দ্বারা অনুমোদিত; এটি alচ্ছিক, তবে প্রায়শই সক্ষম।
Mod_rewrite কী না কি
মোড_উইরাইট আপনার সমস্ত ইউআরএলগুলিকে "সুন্দর" করে না mag এটি একটি সাধারণ ভুল বোঝাবুঝি। আপনার ওয়েব সাইটে এই লিঙ্কটি থাকলে:
<a href="https://stackoverflow.com/my/ugly/link.php?is=not&very=pretty">
মোড_উইরাইট কিছুই সুন্দর করতে এটি করতে পারে না। এটি একটি সুন্দর লিঙ্ক করতে, আপনার করতে হবে:
সুন্দর লিঙ্কে লিঙ্কটি পরিবর্তন করুন:
<a href="https://stackoverflow.com/my/pretty/link">
/my/pretty/link
উপরে বর্ণিত যেকোন একটি পদ্ধতি ব্যবহার করে ইউআরএলের অনুরোধটি পরিচালনা করতে সার্ভারে mod_rewrite ব্যবহার করুন ।
( mod_substitute
বহির্গামী HTML পৃষ্ঠাগুলি এবং তাদের থাকা লিঙ্কগুলিকে রূপান্তর করতে কেউ একত্রে ব্যবহার করতে পারে Though যদিও এটি কেবলমাত্র আপনার HTML সংস্থান আপডেট করার চেয়ে সাধারণভাবে বেশি প্রচেষ্টা))
অনেকগুলি মোড_উইরাইট করতে পারে এবং খুব জটিল মেলানো নিয়ম রয়েছে যা আপনি তৈরি করতে পারেন যার মধ্যে বেশ কয়েকটি পুনর্লিখনের শৃঙ্খলাবদ্ধতা, সম্পূর্ণ আলাদা পরিষেবা বা মেশিনে প্রক্সিং অনুরোধ, প্রতিক্রিয়া হিসাবে নির্দিষ্ট এইচটিটিপি স্থিতি কোডগুলি ফিরিয়ে দেওয়া, অনুরোধগুলি পুনর্নির্দেশকরণ ইত্যাদি খুব কার্যকর এবং এটি ব্যবহার করা যেতে পারে আপনি যদি এইচটিটিপি-র অনুরোধ-প্রতিক্রিয়া প্রক্রিয়াটি বুঝতে পারেন তবে দুর্দান্ত। এটি আপনার লিঙ্কগুলি স্বয়ংক্রিয়ভাবে সুন্দর করে না ।
সমস্ত সম্ভাব্য পতাকা এবং বিকল্পগুলির জন্য অফিসিয়াল ডকুমেন্টেশন দেখুন ।