2010-12-01 17 views
18

मैं लोगों http://www.myweb.com/like/1234456 में टाइप करने के http://www.myweb.com/item.php?itemid=1234456nginx में यूआरएल रीराइट कैसे लिखें?

मैं config में कुछ इस तरह लिखा रीडायरेक्ट करेगा, लेकिन यह काम नहीं करता है चाहता हूँ।

location = ^~/like/ { 
       rewrite ^1234456 ../likeitem.php?item=1234456break; 
       return 403; 
     } 

यह सिर्फ एक परीक्षण है। मैंने अभी तक $ मिलान का उपयोग नहीं किया है।

मैं भी अपना ngnix सर्वर पुनरारंभ करता हूं लेकिन फिर भी .. यह रीडायरेक्ट नहीं करता है।

उत्तर

47

उपरोक्त कोड लापता $ और रिटर्न कमांड के खराब उपयोग के कारण काम नहीं करेगा। उपरोक्त कोड संस्करण 0.8.54 सहित, Nginx के साथ काम करता है।

स्वरूप नीचे है: DesiredURL वास्तविक URL Nginx_Rule

वे होना चाहिए अंदर location/{}

http://example.com/notes/343 
http://example.com/notes.php?id=343 

rewrite ^/notes/(.*)$ /notes.php?id=$1 last; 

http://example.com/users/BlackBenzKid 
http://example.com/user.php?username=BlackBenzKid 

rewrite ^/users/(.*)$ /user.php?username=$1 last; 

http://example.com/top 
http://example.com/top.php 

rewrite ^/top?$ /top.php last; 

परिसर और आगे

http://example.com/users/BlackBenzKid/gallery 
http://example.com/user.php?username=BlackBenzKid&page=gallery 

rewrite ^/users/(.*)/gallery$ /user.php?username=$1&page=gallery last; 
+1

@ the0ther lol दयालु शब्दों की सराहना करते हैं। अधिकांश जानकारी Nginx विकी पर है और धीरे-धीरे धीरे-धीरे .. nginx दस्तावेज़ीकरण और संसाधनों के संदर्भ में अधिक एकीकृत और केंद्रीय बनने लगता है। – TheBlackBenzKid

+3

BlackBenzKid को 'id = 1' में कैसे परिवर्तित किया जाएगा? या क्या मुझे कुछ याद आ रहा है? –

+3

@TheBlackBenzKid: तब यह कैसे जुड़ा हुआ है? "User /php" उपयोगकर्ता नाम = 1 और पृष्ठ = गैलरी "मानचित्र" उपयोगकर्ता/BlackBenzKid/गैलरी "मानचित्र कौन बनाता है? –

2

इस प्रयास करें,

server { 
    server_name www.myweb.com; 
    rewrite ^/like/(.*) http://www.myweb.com/item.php?itemid=$1 permanent; 
}