मैं से पुनर्लेखन के लिए एक nginx पुनर्लेखन नियम की जरूरत है।nginx उपडोमेन पुनर्लेखन
कृपया आप इस समस्या को हल करने में मदद कर सकते हैं, इन दो नियमों को कैसे लिखना है?
मैं से पुनर्लेखन के लिए एक nginx पुनर्लेखन नियम की जरूरत है।nginx उपडोमेन पुनर्लेखन
कृपया आप इस समस्या को हल करने में मदद कर सकते हैं, इन दो नियमों को कैसे लिखना है?
आप अनुप्रेषित, तो मतलब है:
server {
server_name ~^(.*)\.example\.com$ ;
rewrite^http://www.example.com/keyword.php?keyword=$1 redirect;
}
पुनर्लेखन तब के मामले में बस कर
server {
server_name example.com ~^(.*)\.example\.com$ ;
rewrite^/keyword.php?keyword=$1 break;
# location /keyword.php {
# ....
# }
}
भले ही प्रश्न पुनर्लेखन के संबंध में था, आपका उदाहरण "www" को बाहर नहीं करना चाहिए जैसा कि इसे करना चाहिए। इसके लिए आपको एक नकारात्मक लुकहेड निर्माण जोड़ने की आवश्यकता है: '^ ((?! www \।)। *) \। उदाहरण \ .com $' – conny
कॉन्फ़िगरेशन नकारात्मक दिखने के बिना ठीक होना चाहिए, क्योंकि Nginx में सर्वर खोज ऑर्डरिंग है पूर्ण नाम (www.example.com) regexes से पहले जाओ। –
मेरे पास एक समान समस्या है, लेकिन यह समाधान मेजबान को फिर से लिखना प्रतीत नहीं होता है। ओपी में, उन्होंने अनुरोध किया कि नियम पूर्ण होने पर सर्वर www.example.com/keyword.php?keyword=$1 को संभाला जा रहा है, लेकिन ऐसा लगता है कि यह केवल पथ और क्वेरी को फिर से लिखना है। मेजबान को आंतरिक रूप से फिर से लिखने का कोई तरीका है? मैंने केवल रीडायरेक्ट का उपयोग करके उदाहरण देखे हैं और मेरे सभी प्रयोग विफल हो गए हैं। धन्यवाद। –
rewrite ^/list-c-([0-9]+)-k-(.+)-o-1\.html$ /index.php?module=Default&action=List&c=$1&k=$2&o=1 last;
rewrite ^/list-c-([0-9]+)-k-(.+)-o-1-p-(.+)\.html$ /index.php?module=Default&action=List&c=$1&k=$2&o=1&p=$3 last;
rewrite ^/list-c-([0-9]+)-k-(.+)-o-1-price-(.+)\.html$ /index.php?module=Default&action=List&c=$1&k=$2&o=1&price=$3 last;
rewrite ^/list-c-([0-9]+)-k-(.+)-o-(.+)-p-1\.html$ /index.php?module=Default&action=List&c=$1&k=$2&o=$3&p=1 last;
rewrite ^/list-c-([0-9]+)-k-(.+)-o-(.+)-p-(.+)\.html$ /index.php?module=Default&action=List&c=$1&k=$2&o=$3&p=$4 last;
तो यह संभव है कि मैं केवल 1 सर्वर बना सकते हैं (आभासी मेजबान) जो सामान्य domain.com
/www.domain.com
है और फिर बाकी को फिर से लिखने के लिए conf का उपयोग करें
server {
server_name domain.com www.domain.com;
# normal handling for files
}
server {
server_name ~(?<subdomain>[^\.]*).domain.com;
location/{
try_files keyword.php?keyword=$subdomain =404;
}
}
कृपया मुझे बताएं कि मुझे कुछ याद आया है या नहीं।
आप फिर से लिखते हैं (जैसे सर्वर की तरफ, प्रॉक्सी रीराइट) लेकिन ऐसा लगता है जैसे आप रीडायरेक्ट करते हैं? एक रीडायरेक्ट पर उपयोगकर्ता के लिए दृश्यमान यूआरएल बदलता है। प्रॉक्सी रीराइट पर, यह सर्वर के पक्ष में होता है, जो उपयोगकर्ता के लिए अदृश्य है। – conny
मेरा मतलब है फिर से लिखना, उपयोगकर्ताओं को क्या देखना चाहिए http://keyword.example.com Conny – ivan73