.Htaccess फ़ाइल में त्रुटि संदेश "ExpireActive यहाँ अनुमति नहीं है" को कैसे हल करें?


11

मैं जिस साइट पर काम कर रहा हूं, उसके HTTP प्रतिसादों के लिए एक्सपायर हेडर जोड़ने की कोशिश कर रहा हूं। मेरे लिए Apache 1.3 सर्वर को नियंत्रित करने का एकमात्र तरीका मेरी .htaccess फ़ाइल को संपादित करना है। मैंने एक्सपायर हेडर को सक्षम करने के लिए निम्नलिखित जैसे कोड जोड़ने की कोशिश की:

<IfModule mod_expires.c>
    ExpiresActive on
    ExpiresDefault "access plus 1 hour"
</IfModule>

हालाँकि, यह लॉग में निम्न त्रुटि संदेश के साथ आंतरिक सर्वर त्रुटि के परिणामस्वरूप होता है:

यहां एक्सपायरेक्टिव की अनुमति नहीं है

मैं शायद कैश नियंत्रण के वैकल्पिक तरीकों का उपयोग नहीं कर सकता, क्योंकि mod_headers सक्षम नहीं हैं। वहाँ किसी भी तरह से मैं अभी भी। कुछ फ़ाइल के माध्यम से।

अद्यतन
मुझे यह पढ़कर याद आता है कि httpd.conf में ओवरराइड सेटिंग्स के साथ कुछ करना पड़ सकता है। क्या यह पुष्टि करने का कोई तरीका है कि वास्तव में समस्या है? यदि यह है, तो क्या मेरी वेबसाइट के लिए कैशिंग हेडर को नियंत्रित करने के लिए कुछ समाधान है?

जवाबों:


12

एक सामान्य नोट पर, इस तरह के मुद्दों से निपटने का सबसे सरल तरीका मैनुअल का जिक्र है।

http://httpd.apache.org/docs/1.3/mod/mod_expires.html#expiresactive

Syntax:      ExpiresActive On|Off
Context:     server config, virtual host, directory, .htaccess
Override:    Indexes
Status:      Extension
Module:      mod_expires

ब्याज के दो क्षेत्रों यह संदर्भ और ओवरराइड। जैसा कि हम इसका ठीक उपयोग कर सकते हैं। एक।

अपडेट करें:

शीर्षकों की समय सीमा समाप्त करने के लिए अपनी आवश्यकता को संबोधित करने के लिए। की जाँच करें /programming/1036941/setup-expires-headers-php-apache

उम्मीद है की यह मदद करेगा:)


आपकी प्रतिक्रिया के लिए धन्यवाद, लेकिन जैसा कि मेरा सवाल पहले से ही बताता है: मेरे पास अपने वेब रूट में .htaccess फ़ाइल के अलावा सर्वर के कॉन्फ़िगरेशन तक पहुंच नहीं है। इसलिए अगर AllowOverride सही ढंग से सेट नहीं है, तो मैं भाग्य से बाहर हूं।
डैन

आपको उस बारे में अपने प्रदाता से बात करनी चाहिए। अनुक्रमणिका की अनुमति नहीं देना सिर्फ इमो बेवकूफाना है। और, हाँ, यदि वे इसे बदल नहीं सकते / हटाएंगे तो आप बाहर निकलेंगे जहाँ तक mod_expires जाता है।
रुई निल्सन

बस रूण की बात को प्रतिध्वनित करने के लिए - यदि आपका सेवा प्रदाता अपने AllowOverride पैरामीटर को नहीं बदलेगा तो आपके पास और कुछ नहीं है।
डेवग

3

Apache के फ़ोल्डर के लिए "AllowOverride Indexes" जोड़ना जहाँ आपके पास मेरे लिए काम में htaccess है। यहाँ समाधान मिला http://speedforce.org/2009/01/were-back/


1
आपकी प्रतिक्रिया के लिए धन्यवाद, लेकिन जैसा कि मेरा सवाल पहले से ही बताता है: मेरे पास अपने वेब रूट में .htaccess फ़ाइल के अलावा सर्वर के कॉन्फ़िगरेशन तक पहुंच नहीं है। इसलिए अगर AllowOverride सही ढंग से सेट नहीं है, तो मैं भाग्य से बाहर हूं।
डैन

1

RHEL में /etc/httpd/conf/httpd.conf पर

चेंज ऑवरऑवरराइड कोई नहीं

करने के लिए AllowOverride FileInfo विकल्प इंडेक्स


2
आपकी प्रतिक्रिया के लिए धन्यवाद, लेकिन फिर से, जैसा कि मेरा सवाल पहले से ही बताता है: मेरे पास अपने वेब रूट में .htaccess फ़ाइल के अलावा सर्वर के कॉन्फ़िगरेशन तक पहुंच नहीं है। इसलिए अगर AllowOverride सही ढंग से सेट नहीं है, तो मैं भाग्य से बाहर हूं।
दान

0

मेरे मामले में, mod_expires उपलब्ध नहीं है, लेकिन हेडर_मॉड्यूल है, यह अच्छी तरह से काम करता है (Apache 2.0 पर):

# match all these file types, regardless of upper/lowercase
<FilesMatch "\.(?i:jpg|png|gif|js|css)$">
    # 60 seconds * 60 minutes * 24 hours * 7 days
    Header set Cache-Control "max-age=604800, public, must-revalidate"

    # alternative: never expire headers (do look up the caveats)
    # Header set Expires "Thu, 01 Jan 2030 08:08:00 GMT"
    # Header set Cache-Control "public, no-transform"

    # further (debatable) optimizations
    # FileETag None
    # Header unset ETag
    # Header unset Last-Modified
</FilesMatch>

0

मुझे Apache 2.4 / CentOS पर यही समस्या थी। अब विन्यास फाइल के लिए सिंटैक्स है: "AllowOverride Options = Indexes"

<Directory /var/www/html/>
  Options Indexes FollowSymlinks
  AllowOverride Options=Indexes
</Directory>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.