2011-03-23 13 views
10

अपेक्षा के अनुरूप वेब डेवलपर्स के एक बहुत की तरह, मैं जब अनुरोध एक के लिए नहीं है प्रविष्टि का एक बिंदु के माध्यम से एक डोमेन के लिए सभी यातायात निर्देशित करने के लिए .htaccess का उपयोग करना चाहते फ़ाइल है कि सार्वजनिक रूप में सेवा की निर्देशिका में मौजूद है।.htaccess config काम नहीं कर फ़ाइलें

तो कुछ इस तरह:

RewriteEngine On 
# enable symbolic links 
Options +FollowSymLinks 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+) index.php [L] 

इसका मतलब यह है कि अगर अनुरोध एक सीएसएस फ़ाइल या एक छवि के लिए नहीं है, मेरे index.php अनुरोध हो जाता है और मैं (क्या करना है कुछ सेवा चयन कर सकते हैं सामग्री या शायद एक 404)

अच्छा काम करता है, लेकिन मैं एक मुद्दा यह मेरे सुलझाने में मदद नहीं कर पा रहे पर ठोकर खाई है।

मेरे दस्तावेज़ जड़ इस तरह दिखता है:

asymboliclink -> /somewhere/else 
css 
.htaccess 
img 
includes 
index.php 

फिर भी, अपाचे एक निर्देशिका के रूप में एक निर्देशिका करने के लिए सांकेतिक लिंक नहीं दिखाई देता है। यह जड़ में मेरी index.php करने पर अनुरोध गुजरता है। मैं लिंक सेवा करने के लिए जैसे कि यह एक फ़ोल्डर थे के रूप में यह अपने आप index.php के साथ एक फ़ोल्डर से एक लिंक है चाहता हूँ। मैं इसे ब्राउज़र के पता बार में टाइप करके http://example.com/asymboliclink/index.php तक पहुंच सकता हूं, लेकिन मैं http://example.com/asymboliclink

के माध्यम से इसे एक्सेस करने में सक्षम होना चाहता हूं, ऐसा करने के लिए मुझे अपनी .htaccess फ़ाइल में जोड़ने की क्या ज़रूरत है?

उत्तर

17

उपयोग -l स्विच एक प्रतीकात्मक कड़ी के लिए परीक्षण करने के लिए

RewriteEngine On 
# enable symbolic links 
Options +FollowSymLinks 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^(.+) index.php [L] 

प्रलेखन

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html - "के लिए Ctrl + F रूप TestString व्यवहार एक पथ नाम और परीक्षण किया जाए या नहीं यह मौजूद है, और एक प्रतीकात्मक कड़ी है। "

12

-l झंडा संदर्भ सांकेतिक लिंक

RewriteEngine On 
# enable symbolic links 
Options +FollowSymLinks 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^(.+) index.php [L]