আমার .htaccess ফাইলটিতে $ 1 [কিউএসএ, এল] এর অর্থ কী?


99

আমাকে আমার পরিবর্তন করতে হবে .htaccessএবং দুটি লাইন রয়েছে যা আমি বুঝতে পারি না।

RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

আমার কখন এই লাইন ব্যবহার করা উচিত?



উত্তর:


217

সম্পূর্ণ টিউটোরিয়াল দেওয়ার জায়গা নয়, তবে এখানে এটি সংক্ষেপে রয়েছে;

রিউরাইটকন্ড মূলত "পরবর্তী সত্যিকারের রাইরাইটরুলটি কার্যকর করলেই এটি কার্যকর করুন" means !-lপথ শর্ত যে অনুরোধ একটি লিঙ্কের জন্য (নয় !মানে না, -lমানে প্রতি সংযোগ আছে)

RewriteRule মূলত এর মানে হল যে যদি অনুরোধ যে কাজ ম্যাচ হয় ^(.+)$(সার্ভার রুট ছাড়া কোনো URL মিলছে), এটা হিসেবে পুনর্লিখিত করা হবে index.php?url=$1, যার জন্য একটি অনুরোধ মানে olleহিসেবে পুনর্লিখিত করা হবে না index.php?url=olle)।

QSAএর অর্থ হ'ল যদি মূল URL টি দিয়ে কোনও কোয়েরি স্ট্রিংটি পাস করা হয় তবে এটি পুনরায় লেখার সাথে সংযুক্ত করা olle?p=1হবে ( যেমনটি পুনরায় লেখা হবে) index.php?url=olle&p=1

L এর অর্থ যদি নিয়মটি মেলে, এর নীচে আর কোনও পুনর্লিখনের প্রক্রিয়া করবেন না।

এটি সম্পর্কে আরও সম্পূর্ণ তথ্যের জন্য উপরের লিঙ্কগুলি অনুসরণ করুন। পুনর্লিখনের সমর্থনটি উপলব্ধি করা কিছুটা শক্ত হতে পারে তবে স্ট্যাকওভারফ্লো সম্পর্কে শিখতে বেশ কয়েকটি উদাহরণ রয়েছে।


QSA প্রতিস্থাপন ?করতে &, এটা অসম্ভব মাঝে পার্থক্যটা উল্লেখ করা উপার্জন /page&foobarবনাম /page?foobar। আমি কিভাবে প্রতিস্থাপন থেকে QSA বন্ধ করতে পারবেন ?করার &?
পেসারিয়ার

4
আপনি যেমন একটি সমিতি তৈরি করতে পারেন সেই সমস্ত জিনিস মনে রাখার জন্য আমি বিশ্বাস করি: মানে QSAক্যোরি স্ট্রিং অ্যাপেন্ড; Lশেষ হিসাবে দাঁড়ায় (এর অর্থ কার্যকর করা এবং পরবর্তী কাকতালীয় সন্ধান বন্ধ করা)
স্কাইলার্ক রোমান

8

নিম্নলিখিত শর্তগুলি সত্য হলে URL টি পুনরায় লিখুন:
যদি অনুরোধ করা ফাইল নাম ডিরেক্টরি না হয়,

RewriteCond %{REQUEST_FILENAME} !-d

এবং যদি অনুরোধ করা ফাইলের নামটি কোনও নিয়মিত ফাইল না থাকে তবে,

RewriteCond %{REQUEST_FILENAME} !-f

এবং যদি অনুরোধ করা ফাইলের নামটি প্রতীকী লিঙ্ক না হয়,

RewriteCond %{REQUEST_FILENAME} !-l

তারপরে ইউআরএলটি নিম্নলিখিত উপায়ে পুনর্লিখন করুন:
সম্পূর্ণ অনুরোধ ফাইলের নামটি নিন এবং এটি সূচক.পিএফ-তে "url" ক্যোয়ারী প্যারামিটারের মান হিসাবে সরবরাহ করুন। আসল URL থেকে পরবর্তী কোয়েরি প্যারামিটার (কিউএসএ) হিসাবে যে কোনও প্রশ্নের স্ট্রিং যুক্ত করুন এবং এই .htaccess ফাইল (এল) প্রক্রিয়াকরণ বন্ধ করুন।

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

অ্যাপাচি ডক্স # ফ্ল্যাগ_ক্সসা

আরেকটি উদাহরণ:

RewriteRule "/pages/(.+)" "/page.php?page=$1" [QSA]

[কিউএসএ] পতাকা সহ, একটি অনুরোধ

/ পৃষ্ঠাগুলি / 123? এক = দুই

ম্যাপ করা হবে

/page.php?page=123&one=two


0

এই মত ফাইলের জন্য অনুরোধ ক্যাপচার হবে version, releaseএবং README.mdইত্যাদি, যা এন্ড পয়েন্ট হিসাবে পারেন চিকিত্সা করা উচিত, তাহলে (এর / মুক্তির ক্ষেত্রে হিসাবে) সংজ্ঞায়িত বা "খুঁজে পাওয়া যায়নি।"

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