2012-08-10 13 views
9

मैं अपने .htaccess फ़ाइल में निम्नलिखित संरचना बनाना चाहते हैं:क्या Apache htaccess में फिर से लिखने का कोई तरीका है?

If (SITE A DOMAIN or SITE A SUBDOMAIN) { 
    Rewrite this specific way -> /index.php/$1 
} else { 
    Rewrite this specific way -> /directory/www/index.php/$1 
} 

मैं नीचे मेरे वर्तमान कोड है, लेकिन इसके बारे में शिकायत मेरी अपाचे त्रुटि लॉग साथ 500s फेंक रहा है:

[त्रुटि] [ ग्राहक :: 1] mod_rewrite: आंतरिक रीडायरेक्ट की अधिकतम संख्या तक पहुंच गई। कॉन्फ़िगरेशन त्रुटि मानना। यदि आवश्यक हो तो सीमा बढ़ाने के लिए 'रिवाइटऑप्शन मैक्स रेडियोधर्ड्स' का उपयोग करें।, रेफरर:

मैं क्या गलत कर रहा हूं? धन्यवाद!

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond $1 !^(index\.php|blog) 

RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$ [NC,OR] 
RewriteCond %{HTTP_HOST}^example\.com$ 
RewriteRule .? - [S=1] 
RewriteRule ^(.*)$ /directory/www/index.php/$1 [L] 
RewriteRule .? - [S=1] 
RewriteRule ^(.*)$ /index.php/$1 [L] 

उत्तर

15

यह थोड़ा क्लीनर हो सकता है बस छोड़ झंडे से शर्तों का उपयोग (जो भ्रामक तरह का पढ़ने के लिए प्राप्त कर सकते हैं) में ये शामिल शामिल करने के लिए /। लेकिन ऐसा लगता है कि 500 ​​के कारण एक रीडायरेक्ट लूप है। इसे आजमाएं:

# If (SITE A DOMAIN or SITE A SUBDOMAIN) 
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^example\.com$ [NC] 
# make sure we haven't already rewritten this URI 
RewriteCond %{REQUEST_URI} !/directory/www/index.php 
# don't rewrite if the resource already exists 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
# rewrite 
RewriteRule ^(.*)$ /directory/www/index.php/$1 [L] 

# IF !(SITE A DOMAIN or SITE A SUBDOMAIN) 
RewriteCond %{HTTP_HOST} !^subdomain\.example\.com$ [NC] 
RewriteCond %{HTTP_HOST} !^example\.com$ [NC] 
# make sure we haven't already rewritten this URI 
RewriteCond %{REQUEST_URI} !/index.php 
# don't rewrite if the resource already exists 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
# rewrite 
RewriteRule ^(.*)$ /index.php/$1 [L] 
+0

धन्यवाद, यह काम करता है! –

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