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 पेज की त्रुटि दे रहे हैं।

0
Panos Sakalakis 17 अक्टूबर 2020, 18:45
क्या आपने सेटिंग्स-> परमालिंक-> सेटिंग्स को बचाने की कोशिश की है? यह वर्डप्रेस रीराइट नियमों को रीफ्रेश करेगा। यह आपकी भी मदद कर सकता है: wordpress.org/support/article/nginx
 – 
Shalior
17 अक्टूबर 2020, 19:21
पहले ही किया, मदद नहीं की। कोई अन्य विचार?
 – 
Panos Sakalakis
17 अक्टूबर 2020, 21:28

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 निर्देश" में जोड़ने की आवश्यकता है।

0
Panos Sakalakis 10 नवम्बर 2020, 14:25

फ़ाइल प्रबंधक के माध्यम से एक नई फ़ाइल '.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
0
user3046701 20 मई 2021, 17:18