2012-04-03 7 views
49

मैं अपने .htaccess फ़ाइल में निम्न पंक्ति है टाइप किया दौरा किया जा करने के लिए:मेक index.html डिफ़ॉल्ट है, लेकिन अनुमति देते हैं index.php अगर में

DirectoryIndex index.html index.php 

हर मैं इसे index.php के लिए जाना मुझे सूचकांक पर ले जाता है .html। क्या दोनों के लिए अनुमति देना संभव है, लेकिन www.domain.com पर जा रहे उपयोगकर्ताओं के लिए index.html डिफ़ॉल्ट को छोड़ दें?

+0

दोनों 'index.html' और 'index.php' मौजूद हैं, या सिर्फ एक? – nkorth

+1

वे दोनों मौजूद हैं। क्या आप मेरी .htaccess फ़ाइल कह रहे हैं मुझे दोनों को देखने की अनुमति देनी चाहिए? –

+1

क्या आपके पास 'DirectoryIndex' में केवल 'index.html' नहीं है? फिर यह 'example.com' के लिए डिफ़ॉल्ट होगा। दूसरी फ़ाइल 'example.com/index.php' पर उपलब्ध होनी चाहिए। – bfavaretto

उत्तर

73

डिफ़ॉल्ट रूप से, DirectoryIndex पर सेट है:

DirectoryIndex index.html index.htm default.htm index.php index.php3 index.phtml index.php5 index.shtml mwindex.phtml 

अपाचे क्रम में ऊपर दी गई फ़ाइलों में से प्रत्येक के लिए दिखाई देगा, और पहले एक यह है जब एक आगंतुक अनुरोध सिर्फ एक निर्देशिका पाता सेवा करते हैं। यदि वेबसर्वर को वर्तमान निर्देशिका में कोई फ़ाइल नहीं मिलती है जो DirectoryIndex निर्देश में नाम से मेल खाता है, तो निर्देशिका निर्देशिका को ब्राउज़र में प्रदर्शित किया जाएगा, जो वर्तमान निर्देशिका में सभी फाइलें दिखाएगा।

आदेश होना चाहिए DirectoryIndex index.html index.php // डिफ़ॉल्ट index.html

संदर्भ है:Here

+1

धन्यवाद दोस्त, मैं आज रात .htaccess फ़ाइल को हटा दूंगा और देख सकता हूं कि यह मेरी समस्या को हल करता है या नहीं। मैंने सोचा कि यह थोड़ा अजीब लग रहा था क्योंकि इससे पहले कभी मेरी किसी भी वेबसाइट पर ऐसा नहीं हुआ है। –

+1

आपका स्वागत है :-) –

1
RewriteEngine on 
RewriteRule ^(.*)\.html$ $1.php%{QUERY_STRING} [L] 

इन दो पंक्तियों को अपनी .htaccess फ़ाइल के शीर्ष पर रखें। यह आपके .php पृष्ठों के लिए यूआरएल में एचटीएमएल दिखाएगा।

RewriteEngine on 
RewriteRule ^(.*)\.php$ $1.html%{QUERY_STRING} [L] 

अपने .html पृष्ठों के लिए URL में .php दिखाने के लिए इसका उपयोग करें।

+0

यह निफ्टी दिखता है लेकिन मुझे डरने के बाद काफी कुछ नहीं था। –

11

आप वर्डप्रेस का उपयोग कर रहे हैं, तो अब इस को हल करने के लिए एक फिल्टर हुक है:

remove_filter('template_redirect', 'redirect_canonical'); 

(में इस रखो अपने विषय के functions.php)

यह वर्डप्रेस बताता को index.php वापस रीडायरेक्ट नहीं करने के लिए मूल पृष्ठ, लेकिन यह कहां बैठना है। इस तरह, index.html को .htaccess में डिफ़ॉल्ट पृष्ठ के रूप में असाइन किया जा सकता है और index.php के साथ काम कर सकता है।

+0

यह बहुत अच्छा है, –

+0

अद्यतन के लिए धन्यवाद यह एक जीवन बचतकर्ता है !! – ASR

1

DirectoryIndex index.html index.htm default.htm index.php index.php3 index.phtml index.php5 index.shtml mwindex.phtml

यह किसी भी तरह है नहीं करता है? आपको बस इस तरह जोड़ने की आवश्यकता हो सकती है!

<IfModule dir_module> 
    DirectoryIndex index.php index.html index.htm 
</IfModule> 

enter image description here

3

मैं @ TheAlpha से सहमत जवाब को स्वीकार कर लिया है, अपाचे बाएं से दाएं DirectoryIndex लक्ष्य फ़ाइलों को पढ़ता है, अगर पहले फ़ाइल मौजूद है, apche यह कार्य करता है और अगर यह does not तो अगले फ़ाइल पेश किया जाता है निर्देशिका के लिए एक सूचकांक के रूप में। तो अगर आप निम्नलिखित निर्देशक है:

DirectoryIndex file1.html file2.html 

अपाचे सूचकांक के रूप में /file.html में काम करेगा, आप फ़ाइलों के आदेश को बदलने की जरूरत आप/करें 2 सेट करना चाहते हैं जाएगा।एचटीएमएल सूचकांक

DirectoryIndex file2.html file1.html 

के रूप में आप यह भी

RewriteEngine on 

RewriteRule ^$ /index.html [L] 

RewriteRule के ऊपर एक फिर से लिखना का उपयोग कर अपने मुखपृष्ठ पुनर्लेखन नए सिरे से लिखना /index.html होगा इंडेक्स फ़ाइल सेट कर सकते हैं आंतरिक रूप से होता है तो http://example.com/ प्रदर्शित होगा कि सामग्री ofindex। एचटीएमएल