ভার্চুয়ালহোস্টে "AllowOverride All" থাকা সত্ত্বেও .htaccess উপেক্ষা করা হবে


25

আমি ফেডোরা ১৩ এ একটি ল্যাম্প সার্ভার চালিয়ে যাচ্ছি যা ঠিকঠাক কাজ করছে; তবে আমি আমার বর্তমান সাইটের ডকরুট ফোল্ডারে একটি ".htaccess" ফাইল যুক্ত করেছি যা সম্পূর্ণ উপেক্ষা করা হচ্ছে।

আমি এটি সহ আরও অর্ধ ডজন বিভিন্ন পরীক্ষার চেষ্টা করেছি:

RewriteEngine on
RewriteBase /

RewriteRule ^.*$ index.php

তবে চিত্র এবং অন্যান্য সমস্ত পৃষ্ঠাগুলি সূক্ষ্ম লোড করে এবং অস্তিত্বহীন ফাইলগুলি এখনও 404। আমি এটিও চেষ্টা করেছি:

order deny,allow
deny from all

তবে প্রতিটি পৃষ্ঠা এখনও ঠিক জরিমানা করে। আবার .htaccess ফাইলটি সহজেই 100% উপেক্ষা করা হয়।

আমরা আমাদের ভার্চুয়ালস্টস্ট রেকর্ডগুলি /etc/httpd/conf.d/virtual.conf এ রেখেছি। দেখে মনে হচ্ছে:

NameVirtualHost *

<VirtualHost *>
    ServerName              intranet
    DocumentRoot            /var/www/default
    <Directory "/var/www/default">
        Options FollowSymLinks
        AllowOverride All

        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *>
    ServerName              ourwebsite.com
    DocumentRoot            /var/www/html/ourwebsite.com/docroot
    <Directory "/var/www/html/ourwebsite.com/docroot">
        Options FollowSymLinks
        AllowOverride All

        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

আমাদের সার্ভারটি .htaccessফাইলটিকে পুরোপুরি অজানা করার কারণ আর কী হতে পারে ??

সম্পাদনা:

আমার পরিবর্তনগুলি উপেক্ষা করা হচ্ছে তা আরও ভালভাবে দেখানোর জন্য আমি উপরে .htaccess ফাইলটি পরিবর্তন করেছি। নোট করুন যে আমি প্রোডাকশন সার্ভারে ঠিক একই .htaccess ফাইলটি চেষ্টা করেছি এবং এটি দুর্দান্ত কাজ করেছে।

সম্পাদনা 2:

ঠিক আছে, আমার কাছে নতুন তথ্য আছে! শুধু উদ্দেশ্যে পরীক্ষার জন্য, আমি মাধ্যমে গিয়েছিলাম এবং সাময়িকভাবে প্রতি "AllowOverride" ডিরেক্টিভের পরিবর্তিত AllowOverride All। আমি বুঝতে পেরেছিলাম যে খুব প্রথম ডিরেক্টরি এন্ট্রি অন্য সকলকে পরাশক্তি হিসাবে দেখায়:

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

যখন আমি এটিতে পরিবর্তন করি তখন AllowOverride Allআমার .htaccess ফাইলগুলি কার্যকর হওয়া শুরু করে। এটি AllowOverride Allআমার কনফিগারেশন ফাইলগুলির অন্য সমস্ত নির্দেশনা উপেক্ষা করা হচ্ছে!

শেষ ঘন্টা??

উত্তর:


32

অবিশ্বাস্য. মনে আছে কীভাবে আমি বললাম এটি একটি ডেভলপমেন্ট সার্ভার? হ্যাঁ .. আমার ভার্চুয়াল হোস্ট এন্ট্রিটি দেখতে আসলে যা দেখায় তা এখানে:

<VirtualHost *>
    ServerName              dev.ourwebsite.com
    DocumentRoot            /var/www/html/dev.ourwebsite.com/docroot
    <Directory "/var/www/html/ourwebsite.com/docroot">
        Options FollowSymLinks
        AllowOverride All

        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

আপনি এটি দেখতে পাচ্ছেন? ভাল আমি না। আমি আমাদের "ডিরেক্টরি" এন্ট্রি আমাদের ওয়েবেসাইট ডট কমের পরিবর্তে ডেভ.ওর ওয়েবেসাইট.কম এ পরিবর্তন করতে ভুলে গেছি - এবং এতে সমস্ত পার্থক্য এসেছে। আমি কেবল ধরেই নিয়েছি যে ডিরেক্টরি উপস্থিত না থাকলে আপাচি একটি ত্রুটি ছুঁড়ে ফেলত; তবে এটি কেবল ডকুমেন্টরুট নির্দেশের ক্ষেত্রে প্রযোজ্য। এটি ম্যাচ-ভিত্তিক - এর অর্থ এটি আগত অনুরোধের সাথে মিলে যায় যদি এটি বিধিগুলি প্রয়োগ করে তবে অন্যথায়, আপনি যাদু ইউনিকর্নগুলিতে AllowOverride এ এটি বললে কিছু যায় আসে না।

এটি দেখতে আসা অন্য যে কোনও ব্যক্তির কাছে এটি একটি শিক্ষা হতে দিন - যখন সমস্ত কিছু ব্যর্থ হয়, সর্বশক্তিমান টাইপো বিবেচনা করুন।


আমি এক মিলিয়ন বছরে কখনও এই ধরা যেত না! আমি ডিরেক্টরী পাথে একটি টাইপও রেখেছিলাম, একটি দেব প্রকল্পও ... চোখ খোলা থাকার জন্য ধন্যবাদ।
গিলিটেক

আমিও ডিরেক্টরি অংশে একটি টাইপ ছিল। সত্যিই, এটি হতাশাবোধজনক ছিল। এটি একটি আশীর্বাদ ছিল যে আমি এটি পেরে এসেছি এবং এই সত্যটি জানতে পেরেছিলাম যে আমি অত্যন্ত মূর্খ ভুল করতে পারি।
আকাশ কুমার শর্মা

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

5

ভার্চুয়ালহোস্ট ঘোষণার উপরে 'httpd.conf' উপস্থাপিত অন্য কোনও "AllowOverride কিছুই নেই" দেখুন কিনা। সম্ভবত, আপনার কাছে ডোকরোটে "AllowOverride কিছুই নেই" রয়েছে।


আমি যে সার্ভারের সাথে কাজ করছি এটি একটি ডেভলপমেন্ট সার্ভার এবং এটি আমাদের প্রোডাকশন সার্ভারের হুবহু সদৃশ। Httpd.conf ফাইলগুলি কার্যত অভিন্ন। কেবলমাত্র তাত্পর্যপূর্ণ পার্থক্যটি হ'ল এই সার্ভারে আমাদের "ভার্চুয়াল.কনফ" এর কম এন্ট্রি রয়েছে এবং প্রতিটি সাইটই উপস্থাপিত হয় dev.। তবুও প্রোডাকশন সার্ভারটি সূক্ষ্মভাবে কাজ করে।
ব্রায়ান লেসি

0

তিনটি অনুমান:

লাইনে কমা পরে আসলে একটি জায়গা order deny, allowআছে .htaccess? আপাচি পছন্দ করে না। এফ 13 এ আমার জন্য আমি 500s পেয়েছিলাম।

আপনার কি AccessFileNameকোনও জায়গায় নির্দেশনা রয়েছে?

আপনি যদি সেলিনাক্স ব্যবহার করছেন তবে আপনার কাছে ফাইল ( ls -lZ) এর সঠিক প্রসঙ্গ আছে ?


আমি 500 ত্রুটি পাচ্ছি না। .Htaccess ফাইলটি সহজভাবে উপেক্ষা করা হয়। এবং আমি যাচাই করেছিলাম যে যাইহোক সেখানে আমার কোনও স্থান নেই। আমি সেলিনাক্স বা প্রসঙ্গগুলি সম্পর্কে কিছুই জানি না, তবে আমি কীভাবে চেক করব এবং আপাতদৃষ্টিতে এটি অক্ষম করে রেখেছি। হিসাবে AccessFileName, আমি চারপাশে তাকান, কিন্তু আমি ডেনিসের উত্তর সম্পর্কে আমার মন্তব্যে যেমন বলেছিলাম, এই দুটি সার্ভারের জন্য অ্যাপাচি কনফিগারেশন কার্যকরভাবে অভিন্ন।
ব্রায়ান লেসি

আমি স্থান নিয়ে সমস্যা ছিল। এটা আমাকে পাগল করে দিয়েছে
উদ্বিগ্ন

ওফস, সংশোধন: আমার আমার httpd.conf এ অ্যাক্সেসফিলনামের নির্দেশনা আছে। : এটা লেখা আছে নিম্নরূপAccessFileName .htaccess
ব্রায়ান লেসি

0

আমি এটি একটি নতুন সার্ভারে রেখেছিলাম, শেষ পর্যন্ত বুঝতে পেরেছি যে মোড-পুনর্লিখনটি ডিফল্টরূপে সক্ষম হয়নি।

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