অ্যাপাচি .htaccess ফাইলগুলিতে পরামিতি / ধ্রুবককে কীভাবে সংজ্ঞায়িত করবেন


1

আমার অ্যাপাচি সার্ভার কনফিগারেশন ফাইলগুলিতে অ্যাক্সেস নেই এবং কেবলমাত্র .htaccessফাইলগুলির মাধ্যমে কনফিগারেশনকে প্রভাবিত করতে পারি । দুর্ভাগ্যক্রমে, এটি বরং কিছু করতে পারে এমন কিছু বিষয় সীমাবদ্ধ করে। উদাহরণস্বরূপ, সমস্ত এইচটিটিপি অনুরোধকে এইচটিটিপিএসে পুনঃনির্দেশ করার সবচেয়ে সহজ উপায় হ'ল:

<If "%{HTTPS} != 'on'">
    Redirect permanent / https://www.my-domain.com/
</If>

তবে এটি আমাকে ডোমেন নামটিকে হার্ড-কোড করতে বাধ্য করে, তাই আমি .htaccessসহজেই এই ফাইলটি পুনরায় ব্যবহার করতে পারি না can't আমার ক্ষেত্রে, একই সাইটটি বেশ কয়েকটি ভিন্ন ডোমেন (কেবলমাত্র একটি অন্তর্নিহিত ফাইল সিস্টেমের সাথে) থেকে অ্যাক্সেস করা যেতে পারে, সুতরাং এটি মোটেও আমার পক্ষে বিকল্প নয়। আমি এটিকে পুনর্নির্দেশের মাধ্যমে সমাধান করতে পারি না https://%{SERVER_NAME}/কারণ Redirectবিবৃতিটি এই ধরণের পরিবর্তনশীল প্রতিস্থাপনকে সমর্থন করে না ( অংশে বা বিভাগগুলি ব্যতীত<Location><LocationMatch> , তবে অবশ্যই এগুলি .htaccessফাইলগুলিতে উপলব্ধ নয় )।

ইতিমধ্যে, যদি আমি একটি সাধারণ / পুনরায় ব্যবহারযোগ্য .htaccessকনফিগারেশন করতে চাই, তবে আমি mod_rewriteপরিবর্তে ব্যবহার করতে বাধ্য হচ্ছি Redirectযাতে আমি সার্ভারের পরিবর্তনশীল বিকল্প ব্যবহার করতে পারি। সংশ্লিষ্ট সমাধানটি হ'ল

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [R=permanent,L]

যা ইতিমধ্যে উল্লেখযোগ্যভাবে জটিল, mod_rewriteআমি যে নিয়মগুলি সেট আপ করতে চাই তার সাথে সম্ভাব্য মিথস্ক্রিয়াগুলির উল্লেখ না করাই - সম্ভবত, আমি mod_rewriteতার জটিলতার কারণে ন্যূনতম ব্যবহার করতে চাই ।


আর একটি উদাহরণ, যার জন্য আমি মোটেও কার্যকরীভাবে পাইনি, এটি হ'ল mod_substitute, যা %{variable}প্রসারণকে মোটেই সমর্থন করে না । যদি আমার সাইটটি sub_dirসার্ভারে একটি নির্দিষ্ট সাব-ডিরেক্টরিতে ( ) থাকে এবং আমি সেই ডিরেক্টরিতে HTML পৃষ্ঠাগুলিতে সমস্ত লিঙ্ক পোস্ট-প্রক্রিয়া করতে চাই, আমি এটি করতে পারি

AddOutputFilterByType SUBSTITUTE text/html
Substitute s~/sub_dir/[^\s]+/~/sub_dir/something_else/~

সুতরাং এখানে, আমাকে ডিরেক্টরিটি হার্ড-কোড করতে sub_dirহবে, যা আমি প্রতি অন্য সাব-ডাইরেক্টরির জন্য একই প্রতিস্থাপনটি সম্পাদন করতে চাইব ((না, আমার কাছে রুট URL টি অ্যাক্সেস নেই /)। এটি যদি পুনর্লিখনের নিয়ম হয় তবে আমি ঠিক তেমন পরিবেশের পরিবর্তনশীল সংজ্ঞা %{env:site_dir}দিতে পারি:

RewriteRule ^ - [E=site_dir:/sub_dir]

তবে এই পরিবেশের পরিবর্তনশীলটি আমার কোনও কাজে আসেনি কারণ mod_substituteএগুলি ব্যাখ্যা করে না।


সুতরাং, এর মতো মডিউলগুলিতে হার্ড কোডিং এবং সদৃশ ডোমেন এবং সাব-ডাইরেক্টরিগুলি এড়ানোর কোনও উপায় আছে mod_aliasবা mod_substitute, যার মতো একই ব্যবস্থা নেই mod_rewrite? উদাহরণস্বরূপ, %{env:variable}এই মডিউলগুলির মতো কোনওভাবে পরিবেশের ভেরিয়েবলের অ্যাক্সেস পেয়ে ?

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