2013-01-20 33 views
5

इस यूआरएलपुनर्लेखन यूआरएल पुनर्निर्देशन बिना आधुनिक पुनर्लेखन का उपयोग कर

http://domain.com/embed/slideshow-image-list.js 

फिर से लिखा जा रहा है इस

http://domain.com/code/embed/slideshow-image-list 

वर्तमान htaccess कोड

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC] 
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L] 
RewriteRule ^embed/([^\.]+)\.js$ http://domain.com/code/embed/$1 [L] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /index.php/$1 [L] 

अपने वर्तमान को सही ढंग से फिर से लिखा है, लेकिन आप यात्रा करता है, तो .js url यह पूर्ण यूआरएल पर रीडायरेक्ट करता है।

im सिर्फ देख पुनर्निर्देशन

उत्तर

13

बिना यह मैप करने के लिए सिर्फ पथ नियम में डोमेन की आपूर्ति नहीं है,। पूर्ण डोमेन के साथ इसे पुनर्निर्देशित किया जाएगा।

RewriteRule ^embed/([^\.]+)\.js$ /code/embed/$1 [L]

या फिर, यदि जिसके परिणामस्वरूप पथ कोई वास्तविक फ़ाइल नहीं है और Stip बंद [L] ताकि अगली नियम निष्पादित किया जाएगा, index.php द्वारा नियंत्रित किया जाना चाहिए:

RewriteRule ^embed/([^\.]+)\.js$ /code/embed/$1

ध्यान दें कि mod_rewrite guide निम्न कहता है, जो यह इंगित करता है कि पूरा यूआरएल पथ ठीक है, लेकिन मेरा मानना ​​है कि यह सर्वरनाम के मुकाबले तुलना करता है, जरूरी नहीं कि सर्वरअलीस (मैं इसके बारे में 100% निश्चित नहीं हूं, लेकिन मैंने हमेशा उपयोग किया है पूर्ण यूआरएल के बजाय पथ ऐसा करने में गैर अनुप्रेषित पुनर्लेखन):

निरपेक्ष यूआरएल

एक पूर्ण URL निर्दिष्ट किया जाता है, mod_rewrite चेकों होस्टनाम वर्तमान मेजबान से मेल खाता है या नहीं। यदि ऐसा होता है, तो योजना और होस्टनाम हटा दिए जाते हैं और परिणामी पथ को यूआरएल-पथ के रूप में माना जाता है। अन्यथा, दिए गए यूआरएल के लिए एक बाहरी रीडायरेक्ट किया जाता है। बाहरी होस्ट को वर्तमान होस्ट पर वापस मजबूर करने के लिए, नीचे [आर] ध्वज देखें।

+0

यदि मैं ऐसा करता हूं तो 404 के रूप में दिखाता है। –

+0

ओह, आपको शायद '[एल] 'को हटाने की आवश्यकता होगी यदि'/code/एम्बेड/स्लाइड शो-छवि-सूची' वास्तविक फ़ाइल नहीं है और इसे निम्नलिखित नियमों के माध्यम से index.php द्वारा संभाला जाना चाहिए । –

+0

मैंने पिछली टिप्पणी को प्रतिबिंबित करने और अपाचे दस्तावेज़ से एक नोट जोड़ने के लिए उत्तर अपडेट किया। –