सवाल Apache में mod_rewrite को कैसे सक्षम करें?


मैंने बस अपने उबंटू सिस्टम पर लैंप स्टैक स्थापित किया।

पुनर्निर्देशन मेरे लिए काम नहीं कर रहा है। मुझे नहीं पता कि इसे कैसे ठीक किया जाए। क्या कोई मेरी मदद कर सकता है?


159
2018-06-12 13:45


मूल


IMHO यह सवाल उबंटू विशिष्ट नहीं है और इसे माइग्रेट किया जाना चाहिए सर्वर फॉल्ट। - Paolo
ओपीयूएनटीयू पर ओपी स्थापित लैंप। आप कितना उबंटू विशिष्ट चाहते हैं? - wojox
@wojov: मुझे इस मामले के बारे में पता नहीं है, लेकिन वह तर्क काम नहीं करता है। "मैं इस एप्लिकेशन का उपयोग कैसे कर सकता हूं (उबंटू पर)?" ज्यादातर ऑफ-विषय हैं।
यह "मैं एप्लिकेशन का उपयोग कैसे कर सकता हूं", लेकिन "उबंटू में एक विशिष्ट सुविधा को कैसे सक्षम करें" नहीं है। उबंटू के तहत अपाचे एक अलग कॉन्फ़िगरेशन लेआउट का उपयोग करता है जिसमें प्रत्येक मॉड्यूल और वर्चुअल होस्ट एक फ़ाइल है /etc/apache2 और जिसका उपयोग कर सक्षम किया जा सकता है a2* कार्यक्रम। - Lekensteyn
आपको समस्या को कम करने के लिए जो किया है, उसका वर्णन करना चाहिए - ericn


जवाब:


इसे पुनः लिखने के मॉड्यूल को सक्षम करने के लिए, "apache2 मॉड्यूल रीराइट सक्षम करें" चलाएं:

sudo a2enmod rewrite

परिवर्तनों को लागू करने के लिए आपको वेबसर्वर को पुनरारंभ करने की आवश्यकता है:

sudo service apache2 restart

यदि आप mod_rewrite का उपयोग करने की योजना बना रहे हैं .htaccess फाइलें, आपको भी इसका उपयोग करने की आवश्यकता है .htaccess बदलकर फाइलें AllowOverride None सेवा मेरे AllowOverride FileInfo। डिफ़ॉल्ट वेबसाइट के लिए, संपादित करें /etc/apache2/sites-available/default:

    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # changed from None to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>

इस तरह के बदलाव के बाद, आपको फिर से अपाचे को पुनरारंभ करना होगा।


231
2018-06-12 13:49



मुझे AllowOverride All के साथ और अधिक सफलता मिली थी - Valentin Despa
धन्यवाद! sudo a2enmod rewrite तथा FileInfo मेरे लिए तय किया! - d-_-b
मेरे लिए वह फ़ाइल /etc/apache2/apache2.conf थी जहां मुझे उस कॉन्फ़िगरेशन प्रविष्टि मिली - rahmanisback
हां दो बदलावों को समस्या ठीक कर दें। - Adelin
यह मेरे लिए काम नहीं कर रहा है। मैंने यहां एक प्रश्न पोस्ट किया askubuntu.com/questions/809619/failing-to-rewrite-url - Suhail Gupta


मैं एक विशेष उत्तर (उपरोक्त महान उत्तर के लिए अनुवर्ती के रूप में) जोड़ने की हिम्मत करता हूं उबंटू 14.04 तथा .htaccess :

14.04 में, डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल का नाम बदल दिया गया है 000-default.conf :

sudo gedit /etc/apache2/sites-available/000-default.conf

फ़ाइल के अंत में निम्नलिखित जोड़ें:

<Directory "/var/www/html">
    AllowOverride All
</Directory>

किसी कारण से, उबंटू 14.04 और apache2 में रूट सेट है /www/html। यदि आप वेबसर्वर रूट को वापस पुराने में बदलना चाहते हैं /www, open 000-default.conf और बदलें

DocumentRoot /var/www/html/

सेवा मेरे

DocumentRoot /var/www/

और फिर निश्चित रूप से यह होना चाहिए

<Directory "/var/www">
    AllowOverride All
</Directory>

49
2017-10-17 13:00



जानकारी के लिए Thanx! यह / नया तरीका हम www को फ़ोल्डर के रूप में उपयोग कर सकते हैं जहां हम सभी वेबसाइटें डालते हैं, और एचटीएमएल स्थानीयहोस्ट के लिए डिफ़ॉल्ट रूप से "वेबसाइट" है। यदि आप दुनिया के शुरुआती बंदरगाहों के साथ खेल रहे हैं तो महत्वपूर्ण हो सकता है - इस तरह आपका लोकहोस्ट अन्य परियोजनाओं के फ़ोल्डरों को नहीं देख सकता है। - Vladimir Vukanac
यह मेरे लिए काम नहीं कर रहा है। मै इस्तेमाल कर रहा हूँ Ubuntu 14.04.4 LTS - Suhail Gupta