2013-08-19 5 views
6

मैंने छोटी परियोजनाओं के लिए एक छोटा ढांचा (PHP) लिखा, जिसमें सभी को परिभाषित पथ को छोड़कर index.php? Path = $ 1 पर रीडायरेक्ट किया जाना चाहिए। ईएनडी ध्वज के साथ यह समस्याग्रस्त नहीं है। लेकिन अपाचे 2.3 के बाद से END ध्वज मौजूद है और स्क्रिप्ट को अपाचे 2.2 सर्वर पर भी काम करना चाहिए।एचटीएसीएएस अपाचे ईएनडी फ्लैग वैकल्पिक

क्या किसी को यह पता है कि मैं इसे ईएनडी ध्वज के बिना कैसे महसूस कर सकता हूं?

RewriteEngine on 

# Define static redicts 
RewriteRule ^image/(.+)$ public/image/$1 [END,QSA] 
RewriteRule ^css/(.+)$ public/css/$1 [END,QSA] 
RewriteRule ^js/(.+)$ public/js/$1 [END,QSA] 
RewriteRule ^lib/js/core/(.+)$ core/lib/js/$1 [END,QSA] 
RewriteRule ^lib/js/(.+)$ public/lib/js/$1 [END,QSA] 
RewriteRule ^cache/(.+)$ public/cache/$1 [END,QSA] 
RewriteRule ^download/(.+)$ public/download/$1 [END,QSA] 

# Define custom redicts 
RewriteRule ^page/([0-9]+)$ index.php?path=index.php&page=$1 [END,QSA] 

# Define all other redicts 
RewriteRule ^(.+)$ index.php?path=$1 [L,QSA] 

उत्तर

12

अपने नियमों के सभी के बाद से END ध्वज के साथ समाप्त, आप कम या ज्यादा सब पर रीराइट इंजन के किसी भी पाशन रोकना चाहते हैं। END ध्वज का उपयोग कर के बिना इसी कार्य को पूरा करने के लिए, उन सब को L ध्वज के साथ की जगह और पर एक पासथ्रू नियम जोड़ने शुरुआत:

RewriteEngine on 

# pass-through if another rewrite rule has been applied already 
RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule^- [L] 

# Define static redicts 
RewriteRule ^image/(.+)$ public/image/$1 [L,QSA] 
RewriteRule ^css/(.+)$ public/css/$1 [L,QSA] 
RewriteRule ^js/(.+)$ public/js/$1 [L,QSA] 
RewriteRule ^lib/js/core/(.+)$ core/lib/js/$1 [L,QSA] 
RewriteRule ^lib/js/(.+)$ public/lib/js/$1 [L,QSA] 
RewriteRule ^cache/(.+)$ public/cache/$1 [L,QSA] 
RewriteRule ^download/(.+)$ public/download/$1 [L,QSA] 

# Define custom redicts 
RewriteRule ^page/([0-9]+)$ index.php?path=index.php&page=$1 [L,QSA] 

# Define all other redicts 
RewriteRule ^(.+)$ index.php?path=$1 [L,QSA] 
संबंधित मुद्दे