2012-02-23 15 views
7

क्या संपूर्ण साइट के लिए रूट के रूप में कार्य करने के लिए उपनिर्देशिका को बताने के लिए htaccess का उपयोग करने का कोई तरीका है?रूट निर्देशिका के रूप में उप निर्देशिका को सेट करने के लिए .htaccess का उपयोग

उदाहरण के लिए, अगर मैं http://localhost/testsite/ के तहत और में एक वेबसाइट था यह index.php फ़ाइल मैं स्टाइलशीट निम्नलिखित कोड का उपयोग कर के लिए एक संदर्भ था है ..

<link rel="stylesheet" type="text/css" href="/css/layout.css" /> 

मैं तो कर सकता है कि लोड/स्थानीय होस्ट/testsite/सीएसएस/layout.css?

इस समस्या को हल करने के लिए, मैंने प्रत्येक साइट के लिए लोकलहोस्ट सबडोमेन सेट अप किया जो काम करता है, आदर्श नहीं है।

बहुत धन्यवाद।

http://localhost/testsite/index.php 

आप केवल जो हिस्सा जोड़ने के लिए बताने की आवश्यकता:

+6

वर्चुअल होस्ट सेटअप करें। –

+0

जैसा कि सिलोसिस ने बताया, यह आमतौर पर साइट के लिए आपके अपाचे कॉन्फ़िगरेशन में किया जाएगा। वांछित फ़ोल्डर में बस [DocumentRoot] (http://httpd.apache.org/docs/2.0/mod/core.html#documentroot) सेट करें। –

उत्तर

2

ज़रूर, (तुम्हारा के रूप में) सभी रिश्तेदार यूआरआई आधार यूआरआई जो डिफ़ॉल्ट रूप से दस्तावेज़ के यूआरआई है के सापेक्ष हैं

<link rel="stylesheet" type="text/css" href="./css/layout.css" /> 
              ^
              ` see this dot 

उदाहरण:

Base URI  :: http://localhost/testsite/index.php 
Relative URI :: ./css/layout.css 
Result  :: http://localhost/testsite/css/layout.css 

आप इस अधिक मॉड्यूलर की आवश्यकता है, वहाँ था करने के लिए कई तरीके हैं टी। एक HTML दस्तावेज़ के अंदर स्पष्ट रूप से बेस यूआरआई सेट करना है (<base> देखें)।

के आधार पर सर्वर-साइड पर तुलनात्मक रूप से लिंक को हल करना एक और है, यूआरआई और आपकी साइट के रूट-पथ का अनुरोध करें। उदाहरण के लिए this answer देखें।

20

यदि आप 'href = "/ css/layout.css"' भाग रखना चाहते हैं, तो हाँ, आप एक पुनर्लेखन नियम स्थापित कर सकते हैं। आपको बस सावधान रहना होगा कि किसी भी टेस्टाइट से शुरू होने वाले किसी भी चीज़ को रीडायरेक्ट न करें (या आप लूप के साथ समाप्त हो जाएंगे)।

की तरह (रूट .htaccess में):

http://localhost/testsite/css/layout.css

या

http://localhost/css/layout.css:

RewriteEngine On 

RewriteCond %{REQUEST_URI} !^/testsite/.*$ 
RewriteRule ^(.*)$ /testsite/$1 [QSA,L] 

वहाँ, आप या तो से अपने layout.css फ़ाइल का उपयोग करने में सक्षम होंगे