2012-09-18 13 views
16

में फ्लैग बस पाया इस कोड को फिर से लिखने .htaccess"या" .htaccess mod_rewrite

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^my.domain.com$ [NC,OR] 
RewriteCond %{REQUEST_URI} !public/ 
RewriteRule (.*) /public/$1 [L] 

और मैं सोच रहा था "या" ध्वज का उद्देश्य था क्या। पहले से ही दस्तावेज़ http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteflags चेक किया गया है लेकिन किसी भी infos को खोजने के लिए coulnd।

कोई विचार?

उत्तर

28

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

ornext|OR (या अगले शर्त) से इस का प्रयोग करें एक स्थानीय या के बजाय निहित और साथ नियम शर्तों गठबंधन करने के लिए। विशिष्ट उदाहरण:

RewriteCond %{REMOTE_HOST} ^host1 [OR] 
RewriteCond %{REMOTE_HOST} ^host2 [OR] 
RewriteCond %{REMOTE_HOST} ^host3 
RewriteRule ...some special stuff for any of these hosts... 
+1

धन्यवाद :) लगता है मैं कुछ दस्तावेज़ पढ़ने मुसीबतों था ... –

+1

आप 'IF' और ध्वज' [या] की तरह एक शर्त बयान में एक खंड के रूप में 'RewriteCond' बारे में सोचते हैं 'एक तार्किक' || 'के रूप में, यह एक प्रोग्रामर को समझ में आता है। –

+2

@YzmirRamirez यह पूरी तरह से समान नहीं है, अपाचे की [OR] की निहित की तुलना में अधिक प्राथमिकता है और - और अधिकांश प्रोग्रामिंग भाषाओं की तुलना में && के लिए उच्च प्राथमिकता है - परिणाम के रूप में उदा। सी 'ए एंड बी बी || में c && d' का मूल्यांकन '(a && b) || के रूप में किया जाता है (सी एंड डी डी) 'अपाचे की mod_rewrite स्थितियों में जबकि यह vise versa है, यहां विवरण https://stackoverflow.com/a/31572003/895077 –

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