2013-09-06 5 views
5

अपाचे रीराइट का उपयोग करते समय मैं यूआरएल परिवर्तन कैसे छिपा सकता हूं? मैंने इस मुद्दे पर घंटों की खोज की है और जवाब खोजने के लिए यहां आने का फैसला किया है। तो किसी भी मदद/सुराग की सराहना की जाएगी!अपाचे रीराइट का उपयोग करते समय यूआरएल परिवर्तन को कैसे छिपाना है?

अभी मैं उपयोग कर रहा हूँ:

RewriteRule ^/Page/(.*)$ http://domain.com/page.cfm?pagevar=$1 [NC,L] 

उस के साथ समस्या यह है, जब आप http://domain.com/Page/abc123 यह काम करता है के लिए नेविगेट जाना। लेकिन, यह ब्राउज़र यूआरएल को http://domain.com/page.cfm?pagevar=abc123,

मैं इसे वही क्रिया करने के लिए चाहता हूं, लेकिन यूआरएल के रूप में http://domain.com/Page/abc123 दिखाएं।

कृपया, इस पर कोई अंतर्दृष्टि बहुत सराहना की जाएगी! फिर से धन्यवाद।

+0

[उन उपयोगकर्ताओं को पुरस्कृत करने के तरीके को न भूलें, जिन्होंने आपकी मदद की है, जब आवश्यक हो तो अपना प्रश्न सुधारें और इस वेबसाइट का सर्वोत्तम उपयोग करने के तरीके के बारे में अन्य उपयोगी टिप्स।] (Http://stackoverflow.com/about) – Prix

उत्तर

7

पहले नियम बहुत URL प्रारूप में अपने बदसूरत यूआरएल अनुप्रेषित करेगा।

दूसरा नियम आंतरिक रूप से इसे वापस रीडायरेक्ट करेगा उपयोगकर्ता के लिए बदसूरत यूआरएल नहीं दिखाई देगा।

Options +FollowSymLinks -MultiViews 

RewriteEngine On 
RewriteBase/

# Redirect /page.cfm?pagevar=abc123 to /Page/abc123 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+page\.cfm\?pagevar=([^&\s]+) [NC] 
RewriteRule^/Page/%1? [R=301,L] 

# Internally forward /Page/abc123 to /page.cfm?pagevar=abc123 
RewriteRule ^Page/(.*)/?$ /page.cfm?pagevar=$1 [QSA,NC,L] 

उपरोक्त नियमों .htaccess फाइलों पर इस्तेमाल किया जाता है और मान लिया गया page.cfm.htaccess फ़ाइल के साथ आपके डोमेन फ़ोल्डर की जड़ पर है।

आपके उदाहरणों के प्रस्तावों की तरह।

+0

+1, आप पिछले 'रिवाइट्रूल' – anubhava

+0

@anubhava धन्यवाद में 'क्यूएसए' ध्वज जोड़ना चाहेंगे, मैं उस पर विचार कर रहा था, लेकिन यह केवल तभी लागू होता है जब वह वास्तव में किसी भी क्वेरी स्ट्रिंग को नए यूआरएल प्रारूप में ले जाना चाहता हो। – Prix

+0

हां सहमत हुए लेकिन आप इन पुनर्लेख आवश्यकताओं को कभी नहीं जानते। लेकिन हाँ ओपी ने ऐसी किसी भी आवश्यकता के बारे में उल्लेख नहीं किया था। – anubhava

0

आपको नियम के लक्ष्य के http://domain.com भाग से छुटकारा पाने की आवश्यकता है। जब आप कि है, यह implicity बजाय ब्राउज़र को आंतरिक रूप से फिर से लिखने की:

RewriteRule ^/Page/(.*)$ /page.cfm?pagevar=$1 [NC,L] 
संबंधित मुद्दे

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