Plesk (वेब प्रो) से NGINX को सक्षम करने के बाद मेरे मुख्य और उप-निर्देशिका ब्लॉग में मेरे सभी पोस्ट 404 पेज नॉट फाउंड त्रुटि देते हैं।
मैंने सभी URLS को ठीक करने के लिए Plesk में अपने "अतिरिक्त NGINX निर्देश" में निम्नलिखित कोड रखा, लेकिन इसने केवल मुख्य साइट (example.com) को ठीक किया जबकि उप-निर्देशिका ब्लॉग (example.com/tech/, example.com/) mag/ और example.com/dispatch/) अभी भी 404 त्रुटि दे रहे हैं।
# Wordpress Permalinks
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q=$1 last;
}
उसके बाद, मैंने कोड हटा दिया और निम्नलिखित को रखा:
if (!-e $request_filename) {
set $test P;
}
if ($uri !~ ^/(plesk-stat|webstat|webstat-ssl|ftpstat|anon_ftpstat|awstats-icon|internal-nginx-static-location)) {
set $test "${test}C";
}
if ($test = PC) {
rewrite ^/(.*)$ /index.php?$1;
}
मुझे यह कोड आधिकारिक Plesk पृष्ठ, और यह कहता है:
यदि एक वर्डप्रेस इंस्टॉलेशन एक उपनिर्देशिका में स्थित है (उदाहरण के लिए, "httpdocs/sub-dir") या यह उपनिर्देशिकाओं पर आधारित एक वर्डप्रेस मल्टीसाइट नेटवर्क है, तो /index.php?$1 से पहले /sub-dir/ जोड़ें ताकि यह दिखेगा इस तरह: ^/(.*)$ /sub-dir/index.php?$1; नोट: सबफ़ोल्डर पर आधारित वर्डप्रेस मल्टीसाइट नेटवर्क के लिए, प्रत्येक उपनिर्देशिका के लिए उपरोक्त नियम जोड़ें।
अब तक मुझे यह मिल गया है (जो काम नहीं करता है):
if (!-e $request_filename) {
set $test P;
}
if ($uri !~ ^/(plesk-stat|webstat|webstat-ssl|ftpstat|anon_ftpstat|awstats-icon|internal-nginx-static-location)) {
set $test "${test}C";
}
if ($test = PC) {
rewrite ^/(.*)$ /index.php?$1;
rewrite ^/(.*)$ /tech/index.php?$1;
rewrite ^/(.*)$ /mag/index.php?$1;
rewrite ^/(.*)$ /dispatch/index.php?$1;
}
किसी भी प्रकार के मदद की बहुत सराहना की जाएगी!
पी.एस. मुख्य वेबसाइट एक आकर्षण की तरह काम करती है। example.com/tech/ और /mag/ और /dispatch/ में जबकि होमपेज ठीक हैं, पोस्ट मुझे 404 पेज की त्रुटि दे रहे हैं।
2 जवाब
तो एक महीने की खोज के बाद मुझे आखिरकार एक ऐसा समाधान मिला जो बहुत अच्छा काम करता है।
सबसे पहले, अपने Plesk में लॉगिन करें (इसके लिए Plesk का इस्तेमाल किया) और अपनी वेबसाइट के "अपाचे और nginx सेटिंग्स" पृष्ठ पर जाएं। "अतिरिक्त NGINX निर्देश" (पहले संशोधित करें) में निम्नलिखित कोड पेस्ट करें:
if (!-f $request_filename){
set $rule_0 1$rule_0;
}
if (!-d $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
rewrite ^/tech/(.*)$ /subfolder1/index.php?url=$1 last;
}
if (!-f $request_filename){
set $rule_1 1$rule_1;
}
if (!-d $request_filename){
set $rule_1 2$rule_1;
}
if ($rule_1 = "21"){
rewrite ^/dispatch/(.*)$ /subfolder2/index.php?url=$1 last;
}
सबफ़ोल्डर 1 और सबफ़ोल्डर 2 प्रत्येक उप-निर्देशिका साइट के लिए वेबसाइट के रूट फ़ोल्डर के लिए है।
- सबफ़ोल्डर1 का अर्थ है example.com/subfolder1
- सबफ़ोल्डर2 का अर्थ है example.com/subfolder2
आदि..
प्रत्येक सबफ़ोल्डर WP साइट के लिए जिसे आप जोड़ना चाहते हैं, बस निम्न कोड डालें और अपनी साइट के नाम के साथ सबफ़ोल्डर1 बदलें।
if (!-f $request_filename){
set $rule_0 1$rule_0;
}
if (!-d $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
rewrite ^/tech/(.*)$ /subfolder1/index.php?url=$1 last;
}
पी.एस. परिवर्तित कोड को "अतिरिक्त NGINX निर्देश" में जोड़ने की आवश्यकता है।
फ़ाइल प्रबंधक के माध्यम से एक नई फ़ाइल '.htaccess' बनाने का प्रयास करें या इसे /httpdocs/ पर अपलोड करें या जहाँ आपकी फ़ाइलें संग्रहीत हैं।
फ़ाइल सामग्री:
IndexIgnore * # prevent directory listing
Order deny,allow
Allow from *
# ------------------------------------------ # Rewrite so that php extentions are not shown
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
संबंधित सवाल
नए सवाल
wordpress
यह टैग वर्डप्रेस सामग्री प्रबंधन प्रणाली के बारे में प्रोग्रामिंग-विशिष्ट प्रश्नों के लिए है। ऑफ-टॉपिक प्रश्नों में थीम डेवलपमेंट, वर्डप्रेस एडमिनिस्ट्रेशन, मैनेजमेंट बेस्ट प्रैक्टिस, सर्वर कॉन्फिगरेशन आदि शामिल हैं। ये सबसे अच्छे वर्डप्रेस डेवलपमेंट स्टैक एक्सचेंज साइट (https://wordpress.stackexchange.com) पर पूछे जाते हैं।