.Htaccess HTTP- তে কাজ করে তবে https- র সাথে কাজ করে না কেন?


10

আমার কাছে একটি সহজ .htaccess ফাইল রয়েছে যা সাইটের HTTP সংস্করণে দুর্দান্ত কাজ করে তবে আমি যখন https এ যাই না। কেন?

RewriteEngine on
#This is so if the file exists then use the file
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ %{REQUEST_FILENAME} [L]

#These conditions check if a file or folder exists just for reference
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d

#if someone adds ".php" to the slug get rid of it
RewriteRule ^(.*)\.php$ $1  

#don't add the [R] here because we don't want it to redirect
RewriteRule ^(.*)$ index.php?id=$1 [L,QSA]

উত্তর:


20

এখানে যাওয়ার জন্য এখানে 100% পর্যাপ্ত তথ্য নেই তবে সাধারণ ডিফল্ট এসএসএল সেটআপে (রেড হ্যাট / সেন্টোস / ফেডোরা উদাহরণস্বরূপ) এসএসএলের ভার্চুয়ালহোস্টটি তার নিজস্ব ধারকটিতে সেট আপ করা হয়। মোড_উইরাইটের ব্যবহারের জন্য ডকুমেন্টের রুটটিতে এটি কাজ করার জন্য ন্যূনতম "AllowOverride FileInfo" সেট করা দরকার।

ডিফল্টরূপে SSL (/etc/httpd/conf.d/ssl.conf) এর জন্য আপনার কনফিগারেশনটি পরীক্ষা করুন, নিশ্চিত করুন যে এটির মতো কিছু রয়েছে:

DocumentRoot /var/www/html
<Directory /var/www/html>
  AllowOverride FileInfo
</Directory>

AllowOverride এর ডিফল্ট হ'ল 'কিছুই নয়', সুতরাং অন্য কোনও সেটিংস (যেমন 'সমস্ত') যা ফাইলআইফোন ক্ষমতা যুক্ত করে তা ঠিক আছে।

http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride


1
আমি আমার লিনাক্সে /etc/httpd/conf.d/ssl.conf দেখতে পাচ্ছি না, এটি কীভাবে খুঁজে পাব?
অশোক কেএস

1
(1) আপনার কনফারেন্স ফাইলটি অনুসন্ধানের প্রয়োজন হতে পারে .. উদাহরণস্বরূপ, কিছু সিস্টেমে এটি /etc/apache2/sites-enabled/default-ssl.conf(২) অতি স্পষ্ট হওয়া, যদি আপনার এখনও সমস্যা থাকে তবে তার AllowOverride Allপরিবর্তে চেষ্টা করুন AllowOverride FileInfo। একবার এটি কাজ করা হয়ে গেলে, আপনি AllowOverideসিকিউরিটি সর্বাধিকতর করতে অ্যাক্সেসকে আরও সীমাবদ্ধ করতে বিশদে অ্যাপাচি ডক্সটি পড়তে পারেন । (3) মনে রাখবেন সেটিংস কার্যকর হওয়ার জন্য আপনাকে অবশ্যই অ্যাপাচি পুনরায় চালু করতে হবে।
সাইলেন্টস্টিল

4

এটি কি সম্ভব যে এইচটিটিপিএস সার্ভারের জন্য মোড_আররাইট সক্ষম নয়, বা .htaccess ব্যবহার করা হচ্ছে না?

AllowOverideনিয়মিত সাইটের জন্য ব্যবহৃত অনুমতিগুলি পরীক্ষা করুন এবং এসএসএল সংস্করণটির সাথে তুলনা করুন, সম্ভবত একটি তাত্পর্য। সম্ভবত দুর্ঘটনা না হলে, সুরক্ষা উন্নতির জন্য পরিচয় করানো হয়েছে।

mod_rewrite যদিও অপরিহার্য পাশের, সুতরাং যে কোনও শালীন হোস্টিং সরবরাহকারী এটি বাছাই করতে সহায়তা করবে।


1

"অ্যাপাচি 2 + উবুন্টু নির্ভুলভাবে কাজ করা"

আমি স্লিম ফ্রেমওয়ার্ক ব্যবহার করার সময় এবং ইউআরএল-তে প্রয়োজনীয় সূচি.এফপি অপসারণ করার চেষ্টা করার সময় আমার কাছে একই রকম সমস্যা দেখা দিয়েছে । পুনর্লিখনটি HTTP এর জন্য তবে https- এর জন্য পুরোপুরি কাজ করেছে: এটি ইউআরএল খুঁজে পাওয়া যায় নি, যার অর্থ পুনঃলিখন কাজ করছে না।

কিছু হিট-এন-ট্রায়ালের পরে, আমি এই সমাধানটি নিয়ে এসেছি:

 cd /etc/apache2/sites-enabled
 sudo vim default-ssl

থেকে AllowOverride পরিবর্তন কোনটি সকল । একইভাবে sudo vim ssl


0

আমারও একই সমস্যা ছিল, এটি আমার পক্ষে কাজ করেছিল।

আপনার httpd.conf এ, আপনার উভয় আছে তা নিশ্চিত করুন:

সার্ভারনাম ডোমেইন ডট কম

সার্ভারআলিয়াস www.domain.com

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