2013-01-19 15 views
10

के साथ काम कर रहे htaccess फ़ाइलों को कैसे प्राप्त करें मेरी समस्या यह है कि मेरे स्थानीय सर्वर पर मेरी .htaccess फ़ाइल नहीं पढ़ी जा रही है। VirtualHost फ़ाइल में सेटिंग्स हमेशा प्राथमिकता लेती प्रतीत होती हैं।Apache VirtualHost

मैं निम्नलिखित की कोशिश की है:

  • सक्रिय mod_rewrite
  • All को AllowOverride बदल दिया, लेकिन यह एक HTTP Error 500 Internal server error कारण बनता है। मैंने इसे विभिन्न विकल्पों के साथ आजमाया है लेकिन यह हमेशा 500 त्रुटि का कारण बनता है।

मैं जो ऐसा दिखाई देता है Ubuntu पर एक VirtualHost फ़ाइल उपयोग कर रहा हूँ:

<VirtualHost *:80> 
ServerAdmin [email protected] 

DocumentRoot /web/website 
<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
</Directory> 
<Directory /web/website> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride None 
    Order allow,deny 
    allow from all 
</Directory> 
</VirtualHost> 
मेरी .htaccess फ़ाइल में /web/website तहत

मैं निम्नलिखित नियमों (जो पढ़ा नहीं जा रहा है):

RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?/$1 [L] 
RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit 
RewriteRule ^(.*)$ ogtags.php?$1 [L,QSA] 
ErrorDocument 404 /404 
ErrorDocument 401 /401 

एक चीज जिसने मैंने कोशिश की थी, इन नियमों को सीधे वर्चुअलहोस्ट फ़ाइल में जोड़ रहा था, लेकिन मुझे काम करने के लिए मेरी .htaccess फ़ाइल चाहिए! क्या यह इतना बड़ा सवाल है? :(

संपादित करें:।।? तो मैं अपने अपाचे error.log में देखा और यह Invalid command 'Action', perhaps misspelled or defined by a module not included in the server configuration बताती है कि मेरी .htaccess फ़ाइल की चर्चा करते हुए वहाँ एक मॉड्यूल कार्रवाई बुलाया कोई भी विचार जो मैं सक्षम कर सकते हैं होने के लिए प्रतीत नहीं होता

संपादित करें 2: मैंने देखा है कि मेरी httpd.conf फ़ाइल खाली है चाहिए के बाद से इस मामले मैं VirtualHost फ़ाइलों

+0

मैं उन नियमों बाहर टिप्पणी की कोशिश की है किसी को नीचे में मदद करता है, लेकिन नहीं लगती है जैसे वे समस्या का कारण थे। कोई अन्य सुझाव? मुझे लगता है कि आप सही हैं, यह इन नियमों में से एक होना चाहिए जो गलत हैं। मैंने सभी नियमों पर टिप्पणी करने की भी कोशिश की और फिर इसका कोई प्रभाव नहीं पड़ा! तो मुझे नहीं पता कि और क्या प्रयास करें! –

+0

हम्म लेकिन ये नियम लाइव सर्वर पर 404 के साथ ठीक काम करते हैं। तो मेरे स्थानीय अपाचे सेटअप में कुछ और होना चाहिए जो गलत है। –

+0

'httpd.conf'' उपयोगकर्ता कॉन्फ़िगरेशन जोड़ने के लिए है और इसे' apache2.conf'' फ़ाइल में शामिल किया गया है। यह डिफ़ॉल्ट रूप से खाली है। – cyberhicham

उत्तर

6

मेरी अपाचे error.log को देखने के बाद मुझे एहसास हुआ कि मैं बस अपाचे actions मॉड्यूल को सक्षम करने के लिए किया था:

sudo a2enmod कार्यों

और 500 से अधिक आंतरिक सर्वर त्रुटियां नहीं!

आशा इस लाइन :)

1

आप RewriteBase / निर्देश याद आती है का उपयोग कर रहा

।?

RewriteEngine निर्देश के बाद यह जोड़ें:

RewriteEngine On 
RewriteBase/
+0

यह कुछ भी नहीं बदला, अभी भी 'HTTP त्रुटि 500 ​​आंतरिक सर्वर' प्राप्त हो रहा है :( –

+2

आमतौर पर ''/ var/log/apache2/error.log'' – cyberhicham

+0

में लॉग इन की जांच करें! धन्यवाद! –