2012-10-29 10 views
10

का कारण बनता है मेरे पास निम्नलिखित htaccess रीराइट नियम हैं। एक नियम हालत पाशन को रोकने के लिए मूल रूप से इस तरह से लिखा गया था:अपाचे mod_rewrite REDIRECT_STATUS स्थिति निर्देशिका सूची

RewriteCond %{ENV:REDIRECT_STATUS} ^. 

यह ठीक काम करता था, जब तक यह अचानक अपाचे वेबसाइट की सूची सूची प्रदर्शित करने के लिए पैदा कर रहा काम करना बंद कर।

मैं नीचे सूची में के रूप में, इस नए रूप को बदलना पड़ा है, यह फिर से काम करने के लिए:

RewriteCond %{ENV:REDIRECT_STATUS} 200 

आप इस व्यवहार के कारण के किसी भी विचार है?

धन्यवाद

RewriteEngine on 
RewriteBase/

## Permanent 301 

## Force to www. Un-comment in production. 
RewriteCond %{HTTP_HOST} !^www\.myhost\.com [NC] 
RewriteRule ^(.*) http://www.myhost.com/$1 [L,R=301] 

## Permanent redirect rules for contents 

RewriteRule ^argument/programming/?$ tags/programming [NC,L,R=301] 

## Internal Redirect Loop Protection 
RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule^- [L] 

## Maintenance page 
#RewriteRule (.*) special/maintenance.html 

## Specials 
RewriteRule special/(.*) special/$1 [NC,L] 

## Static resources 
RewriteRule ^(.*\.(js|ico|gif|jpg|png|css|rss|xml|htm|html|pdf|zip|gz|txt))$ public/$1 [NC,L] 

## Front Controller 
RewriteRule ^(.*) public/index.php [NC,L] 
+0

क्या आपको कभी इसका उत्तर मिला? – anubhava

+0

वास्तव में नहीं :(जब तक यह ठीक काम करता है तब तक बुरा नहीं है, फिर भी मुझे कारण समझना अच्छा लगेगा :) – Timido

उत्तर

8

आप पाशन को रोकने के लिए इस शर्त है:

## Internal Redirect Loop Protection 
RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule^- [L] 

यह आंतरिक अपाचे चर %{ENV:REDIRECT_STATUS} की जाँच करके काम करता है। यह चर पुन: लिखने के मॉड्यूल की शुरुआत में खाली है लेकिन पहली बार सफल पुनर्लेखन होने पर 200 पर सेट किया जाता है। यह उपर्युक्त शर्त पहले सफल पुनर्लेखन के बाद और फिर से लिखने के बाद जमानत से बाहर निकलती है और लूपिंग रोकती है।

+0

मेरे द्वारा शुरू किए गए एक से अलग कैसे है? यह है: 'रिवाइटकंड% {ENV: REDIRECT_STATUS} ^। – Timido

+0

अपनी हालत' रिवाइटकंड% {ENV: REDIRECT_STATUS}^देखें। 'जब भी '% {ENV: REDIRECT_STATUS}' मेल नहीं खाएगा, यह सुनिश्चित किए बिना कि यह है 200 (सफलता)। – anubhava

+0

'% {ENV: REDIRECT_STATUS} 'अन्य मामलों के लिए सेट हो जाता है, साथ ही mod_dir, ErrorDocument आदि – anubhava

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