2009-08-20 13 views
19

मैं एक स्क्रिप्ट पर रीडायरेक्ट करने के लिए .htaccess नियम लिखने की कोशिश कर रहा हूं, जो आगे कहीं और रीडायरेक्ट करता है। यूआरएल शॉर्टनर्स कैसे काम करते हैं। हालांकि, मैं रीडायरेक्ट के .htaccess भाग के दौरान पता बार बदलना चाहता हूं। (यह स्क्रिप्ट स्थान बदलने के लिए अनुप्रेषित के लिए ठीक है।)। पता बार बदलने के बिना htaccess रीडायरेक्ट

मैं mod_rewrite उपयोग कर रहा हूँ, वर्तमान में यह कर:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteBase/
RewriteRule (.+)$ "?url=$1" [L,R=301] 

वहाँ एक ध्वज है या किसी अन्य विधि मैं उपयोग कर सकते हैं प्राप्त करने के लिए मैं क्या कर रहा हूँ करने का प्रयत्न?

Addenda: स्थान बार रीडायरेक्ट होने के कारण फ़ायरफ़ॉक्स में नहीं बदलता है, जो मैं करना चाहता हूं। यह अंत बिंदु को प्रतिबिंबित करने के लिए सिर्फ एक बार बदलता है। सफारी इसे प्रत्येक चरण पर बदल देता है। इससे बचने के लिए कोई रास्ता?

उत्तर

39

यदि आप R ध्वज का उपयोग कर रहे हैं तो आप mod_rewrite बता रहे हैं कि एक बाहरी रीडायरेक्ट जो आप चाहते हैं, इसलिए ब्राउजर से नया अनुरोध करने के लिए कहा जाता है और पता बार तदनुसार बदलना चाहिए।

R ध्वज के बिना, कोई रीडायरेक्ट नहीं है, लेकिन एक अपाचे-आंतरिक अनुरोध फिर से लिखता है जो ब्राउज़र से छिपा हुआ है। इस प्रकार, पता बार नहीं बदलेगा। हालांकि, आप स्पष्ट कारणों से बाहरी यूआरआई में आंतरिक रीडायरेक्ट का उपयोग नहीं कर सकते हैं।

के बाद से तुम वैसे भी एक आंतरिक रीडायरेक्ट का उपयोग करने लगते हैं, बस R ध्वज को हटा कर उसे काम करना चाहिए:

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.+)$ ?url=$1 [L] 
+0

आह! यह हल हो गया। मेरी गलती। धन्यवाद! – aditya

+2

बाहरी यूआरआई के लिए आप ध्वज का उपयोग करके इसे प्रॉक्सी कर सकते हैं [पी] –

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