2009-09-02 15 views
5

मेरे होस्टिंग कंपनी ने हाल ही में अपाचे 2 के लिए अपाचे 1 से मुझे उन्नत बनाया, और मैं अपने mod_rewrite सामान के साथ कुछ काफी अलग व्यवहार देख शुरू कर दिया है।लागू करने mod_rewrite नियम लागू किया जाता है

DirectoryIndex blog.html 

# Various rewrite rules. 
<IfModule mod_rewrite.c> 
    RewriteEngine on 

    # Rewrite current-style URLs of the form 'showpage.php?url=x'. 
    RewriteRule ^(.*\.html)$ showpage.php?url=$1 [L,QSA] 

</IfModule> 

अब, पहले से अपाचे 1 के साथ, अगर आप http://mysite.com/ के पास गया तो DirectoryIndex पहले प्रभाव (http://mysite.com/blog.html) ले जाएगा और उसके बाद फिर से लिखना है कि बारी http://mysite.com/showpage.php?url=/blog.html

में होगा:

यहाँ मेरी .htaccess फाइल है

अब अपाचे 2 के साथ, यह उम्मीद के रूप में लिखा जाता है, तो आप http://mysite.com/blog.html लिए जाते हैं, लेकिन अगर आप http://mysite.com/ करने के लिए जाना यह आप वेनिला blog.html फ़ाइल में कार्य करता है, यह showpage.php को फिर से लिखने के बिना। तो फिर से लिखना में पहले DirectoryIndex किक लागू किया जाता है की जा रही

जड़ पेज (जो कठिन हो जाएगा पकड़ने के लिए स्पष्ट रूप से एक अतिरिक्त नियम जोड़ने के अलावा के बाद से मैं सभी सबडायरेक्टरियों के कारण जो भी एक DirectoryIndex है लेने के लिए होगा) किसी को भी अपाचे 2 DirectoryIndex लागू करने के बाद फिर से लिखना लागू करने के लिए एक तरह से पता है?

+0

इस अपाचे 2.2.13 के साथ मेरे लिए काम करता है। आप किस अपाचे संस्करण का उपयोग कर रहे हैं? –

+0

मुझे यह सुनना अच्छा लगेगा कि क्या आपको कभी इसका अच्छा जवाब मिला है। मैं (निर्देशिका अस्तित्व के लिए परीक्षण, स्लेश अनुगामी संलग्न) सर्वर मुख्य कार्यक्षमता reimplementing कर रहा हूँ अटक एक 'RewriteCond' में, और बदतर, मैं कई' सूचकांक है। * '' DirectoryIndex' में बातें, और जैसे मैं 'जोड़ने के लिए यह लग रहा है उनके लिए भी परीक्षण। Kludges समस्या के चारों ओर पिलिंग कर रहे हैं कि गलत मंच पर पुनर्लेखन लागू किया जा रहा है। –

उत्तर

1

DirectoryIndex निर्देश के बजाय इस नियम का प्रयास करें:

RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^(.*)/?$ $1/blog.html 
+0

मुझे लगता है कि वह DirectoryIndex को हटाने/प्रतिस्थापित नहीं करना चाहता है। –

+0

@ax: फिर उसे पहले इसे 'DirectoryIndex' निर्देश के अतिरिक्त प्रयास करना चाहिए। – Gumbo

+0

एक नोट के रूप में, याद रखें कि '% {REQUEST_FILENAME}' docroot पर स्थित पथ देता है। इसलिए, आपको * इसे लिखने के लिए \ NRewiteCond/var/www% {REQUEST_FILENAME} -d' – puk

संबंधित मुद्दे