ข้อผิดพลาด Nginx 403: ดัชนีไดเรกทอรีของ [โฟลเดอร์] เป็นสิ่งต้องห้าม


183

ฉันมี 3 ชื่อโดเมนและพยายามโฮสต์ทั้ง 3 เว็บไซต์บนเซิร์ฟเวอร์เดียว (Digital Ocean droplet) โดยใช้ Nginx

mysite1.name mysite2.name mysite3.name

มีเพียง 1 อันเท่านั้นที่ทำงานได้ อีกสองผลในข้อผิดพลาด 403 (ในทางเดียวกัน)

ในบันทึกข้อผิดพลาดของฉัน Nginx [error] 13108#0: *1 directory index of "/usr/share/nginx/mysite2.name/live/" is forbiddenผมเห็น:

การกำหนดค่าที่เปิดใช้งานไซต์ของฉันคือ:

server {
        server_name www.mysite2.name;
        return 301 $scheme://mysite2.name$request_uri;
}
server {
        server_name     mysite2.name;

        root /usr/share/nginx/mysite2.name/live/;
        index index.html index.htm index.php;

        location / {
                try_files $uri $uri/ /index.html index.php;
        }

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}

ไซต์ทั้ง 3 แห่งมีไฟล์กำหนดค่าเกือบเหมือนกัน

ไฟล์ของแต่ละไซต์อยู่ในโฟลเดอร์เช่น /usr/share/nginx/mysite1.name/someFolder จากนั้น /usr/share/nginx/mysite1.name/live เป็น symlink (เหมือนกันสำหรับ mysite2 และ mysite3)

ฉันดูที่Nginx 403 ซึ่งเป็นสิ่งต้องห้ามสำหรับไฟล์ทั้งหมดแต่นั่นไม่ได้ช่วยอะไร

มีความคิดเห็นเกี่ยวกับสิ่งที่อาจจะผิดหรือเปล่า?


24
ฉันคิดว่าคุณมีindex.html index.phpไฟล์หายไปคุณแน่ใจหรือว่าไฟล์เหล่านั้นมีอยู่ในโฟลเดอร์นั้นหรือไม่?
Mohammad AbuShady

โอ้คุณพูดถูก 2 ไซต์ที่ไม่ทำงานเป็นโครงการ Laravel (ซึ่งมี index.php ใน a / public โฟลเดอร์ย่อย) และโครงการ CodeIgniter เก่า (ซึ่งมี index.php ในโฟลเดอร์ย่อย / public_web) แต่ฉันไม่แน่ใจว่าจะเปลี่ยนการกำหนดค่าอย่างไรเพื่อให้ไซต์ใช้งานได้
Ryan

เช่นเดียวกับ @MohammadAbuShady กล่าวว่าฉันไม่มีไฟล์ดัชนีในโฟลเดอร์และได้รับข้อผิดพลาดนี้
ajon

ฉันเพียงแค่มีข้อผิดพลาดนี้อีกครั้ง แต่คราวนี้ปัญหาคือการที่ฉันตั้งใจจะตั้งค่าrootให้เป็นแทน/Users/myUsername/code/app /Users/myUsername/code/app/public
Ryan

นี่คือเมื่อผู้ดูแลระบบเซิร์ฟเวอร์ส่องแสง ละเอียดการติดต่อ
OldFart

คำตอบ:


171

หากคุณมีการจัดทำดัชนีไดเรกทอรีและมีปัญหานี้อาจเป็นเพราะ try_files ที่คุณใช้มีตัวเลือกไดเรกทอรี:

location / {
  try_files $uri $uri/ /index.html index.php;
}                 ^ that is the issue

ลบออกและควรทำงาน:

location / {
  try_files $uri /index.html index.php;
} 

ทำไมสิ่งนี้เกิดขึ้น

TL; DR: สิ่งนี้เกิดขึ้นเนื่องจาก nginx จะพยายามทำดัชนีไดเรกทอรีและถูกบล็อกด้วยตัวเอง โยนข้อผิดพลาดที่กล่าวถึงโดย OP

try_files $uri $uri/หมายถึงจากไดเรกทอรีรากลองไฟล์ที่ชี้โดยuriหากที่ไม่ได้มีอยู่ลองไดเรกทอรีแทน (จึง/) เมื่อ nginx เข้าถึงไดเรกทอรีมันจะพยายามจัดทำดัชนีและส่งคืนรายการไฟล์ภายในเบราว์เซอร์ / ไคลเอ็นต์อย่างไรก็ตามโดยการทำดัชนีไดเรกทอรีเริ่มต้นถูกปิดใช้งานและดังนั้นจึงส่งกลับข้อผิดพลาด "ข้อผิดพลาด Nginx 403: ดัชนีไดเรกทอรีของ [โฟลเดอร์] ถูกห้าม "

การจัดทำดัชนีไดเรกทอรีควบคุมโดยautoindexตัวเลือก: https://nginx.org/en/docs/http/ngx_http_autoindex_module.html


นี่คือปัญหาที่ฉันมี ฉันไม่สามารถเข้าใจว่าทำไมtry_filesไม่ลองindex.phpฉันเพิ่งได้รับ 403 ด้วย "ดัชนีไดเรกทอรีของ ... เป็นสิ่งต้องห้าม"
Travis D

4
@JCM คุณจะเพิ่มคำอธิบายว่าทำไมต้อง$uri/สร้างปัญหาหรือไม่
Ian Dunn

แก้ไขฉันด้วยเช่นกัน
alariva

1
ฉันมีข้อผิดพลาดเดียวกัน ฉันมี 2 ไซต์ทั้งในโดเมนย่อย การลบการ $ uri / ทำเคล็ดลับ ขอบคุณ!
jivanrij

5
@luminol try_files $uri $uri/หมายถึงจากเว็บรูทให้ลองไฟล์ที่ชี้โดย uri หากไม่มีอยู่ให้ลองใช้ไดเรกทอรีแทน (เช่นนี้/) เมื่อ nginx เข้าถึงไดเรกทอรีมันจะพยายามจัดทำดัชนีและส่งคืนรายการไฟล์ภายในเบราว์เซอร์ / ไคลเอ็นต์อย่างไรก็ตามโดยการทำดัชนีไดเรกทอรีเริ่มต้นถูกปิดใช้งานและดังนั้นจึงส่งกลับข้อผิดพลาด "ข้อผิดพลาด Nginx 403: ดัชนีไดเรกทอรีของ [โฟลเดอร์] ถูกห้าม " การจัดทำดัชนีไดเรกทอรีควบคุมโดยautoindexตัวเลือก: nginx.org/en/docs/http/ngx_http_autoindex_module.html
JCM

67

นี่คือการกำหนดค่าที่ใช้งานได้:

server {
    server_name www.mysite2.name;
    return 301 $scheme://mysite2.name$request_uri;
}
server {
    #This config is based on https://github.com/daylerees/laravel-website-configs/blob/6db24701073dbe34d2d58fea3a3c6b3c0cd5685b/nginx.conf
    server_name mysite2.name;

     # The location of our project's public directory.
    root /usr/share/nginx/mysite2/live/public/;

     # Point index to the Laravel front controller.
    index           index.php;

    location / {
        # URLs to attempt, including pretty ones.
        try_files   $uri $uri/ /index.php?$query_string;
    }

    # Remove trailing slash to please routing system.
    if (!-d $request_filename) {
            rewrite     ^/(.+)/$ /$1 permanent;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
    #   # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #   # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param                   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

}

จากนั้นผลลัพธ์เดียวในเบราว์เซอร์คือข้อผิดพลาด Laravel:“ อ๊ะดูเหมือนว่ามีบางอย่างผิดปกติ”

ห้ามรันchmod -R 777 app/storage( หมายเหตุ ) การสร้างบางสิ่งที่เขียนได้ทั่วโลกนั้นมีความปลอดภัย

chmod -R 755 app/storage ทำงานและมีความปลอดภัยมากขึ้น


1
ใช่พวกคุณพูดถูก นั่นเป็นความคิดที่ไม่ดี ฉันจะอัปเดตคำตอบของฉัน ผู้คนอาจได้รับประโยชน์จากstackoverflow.com/a/11996645/470749
Ryan

1
คุณอาจมีตัวเลือกในการเปลี่ยนกลุ่มโฟลเดอร์เป็นกลุ่ม nginx เช่นwww-dataบนเดเบียน จากนั้นตั้งค่าสิทธิ์เข้มงวดในโฟลเดอร์ที่ชอบ: แล้วchmod -R 640 app/storage chown -R :www-data app/storageวิธีนี้ไฟล์จะเห็นได้เฉพาะเจ้าของแอปและเว็บเซิร์ฟเวอร์ และไม่มีใครสามารถดำเนินการใด ๆ ของไฟล์ที่เก็บไว้ (อาจจะอัปโหลด) โดยตรง Nginx ควรต้องได้รับอนุญาตในการอ่านเพื่อเข้าถึงไฟล์
Complistic

3
หมายเหตุตนเอง: ผมเพิ่ง Nginx นี้ 403 อีกครั้งและอีกครั้งปัญหาที่เกิดขึ้นคือการที่ฉันได้ทิ้งตั้งใจปิดบนpublic/ root /usr/share/nginx/mysitename/public/;หลังจากเพิ่มpublic/และทำงานservice nginx restartแล้วก็ใช้งานได้
Ryan

แล้ว windows ล่ะ
Himanshu Bansal

58

หากคุณเพียงแค่พยายามรายการเนื้อหาไดเรกทอรีใช้autoindex on;เช่น:

location /somedir {
       autoindex on;
}

server {
        listen   80;
        server_name  domain.com www.domain.com;
        access_log  /var/...........................;
        root   /path/to/root;
        location / {
                index  index.php index.html index.htm;
        }
        location /somedir {
               autoindex on;
        }
}

9
แน่นอนฉันไม่ต้องการautoindex on; เป็นความคิดที่ดีที่จะเปิดเผยเนื้อหาไดเรกทอรีของฉันต่อสาธารณะ
Ryan

5
@ Ryan มันลงมาที่ "คุณต้องการทำอะไร?"
Bhargav Nanekalva

13
เป็นที่ชัดเจนว่าเขาต้องการที่จะลบข้อผิดพลาด 403 และได้รับหน้าเว็บที่จะแสดงไม่แสดงเนื้อหาไดเรกทอรีทั้งหมด (โดยเฉพาะการอภิปรายด้านบน)
jpmorris

21

ฉันพบข้อผิดพลาดที่คล้ายกัน
--- "403 ถูกห้าม" ในหน้าเว็บ
--- "13: การอนุญาตถูกปฏิเสธ" ในบันทึกข้อผิดพลาดที่ /var/log/nginx/error.log

ด้านล่าง 3 ขั้นตอนทำงานสำหรับฉัน:

1: เปิดเทอร์มินัลเห็นบางสิ่งเช่นด้านล่าง

user1@comp1:/home/www/

ดังนั้นชื่อผู้ใช้ของฉันคือ "user1" (จากด้านบน)

2: เปลี่ยนผู้ใช้ใน /etc/nginx/nginx.conf

# user www-data;
user user1;

3: โหลด nginx อีกครั้ง

sudo nginx -s reload  

นอกจากนี้ฉันได้ใช้สิทธิ์ของไฟล์ / โฟลเดอร์ (ก่อนที่ฉันจะทำมากกว่า 3 ขั้นตอน)
(755 ไปยังไดเรกทอรีของฉัน, พูด / dir1 /) & (644 สำหรับไฟล์ภายใต้ไดเรกทอรีนั้น):
(ฉันไม่แน่ใจว่าถ้าขั้นตอนเพิ่มเติมนี้จริง ๆ จำเป็นต้องมีมากกว่า 3 ขั้นตอนอาจเพียงพอ):

chmod 755 ./dir1/
chmod 644 ./dir1/*.*

หวังว่านี่จะช่วยให้ใครบางคนได้อย่างรวดเร็ว ขอให้โชคดี


1
ขอบคุณครับฉันมีปัญหาเดียวกันและเป็นเพราะสิทธิ์ ฉันตั้งค่าการอนุญาตของโฟลเดอร์และไฟล์และตอนนี้ก็ใช้ได้ดี
Altaf Hussain

2
ดีใจที่ได้ยินฉันมีประโยชน์ (ช่วยเหลือผู้อื่นในโดเมนที่คุณรู้จักในเวลาว่างถ้าเป็นไปได้โดยไม่คาดหวังอะไรเลย)
Manohar Reddy Poreddy

ดีใจที่ได้ยินมันช่วย
Manohar Reddy Poreddy

10

ในความเป็นจริงมีหลายสิ่งที่คุณต้องตรวจสอบ 1. ตรวจสอบสถานะการทำงานของ nginx ของคุณ

ps -ef|grep nginx

ps aux|grep nginx|grep -v grep

ที่นี่เราต้องตรวจสอบว่าใครกำลังใช้งาน nginx โปรดจำผู้ใช้และกลุ่ม

  1. ตรวจสอบสถานะการเข้าถึงของโฟลเดอร์

    ls -alt

  2. เปรียบเทียบกับสถานะของโฟลเดอร์กับ nginx

(1) หากสถานะการเข้าถึงของโฟลเดอร์ไม่ถูกต้อง

sudo chmod 755 /your_folder_path

(2) ถ้าผู้ใช้และกลุ่มของโฟลเดอร์ไม่เหมือนกันกับการเรียกใช้ของ nginx

sudo chown your_user_name:your_group_name /your_folder_path

และเปลี่ยนชื่อผู้ใช้และกลุ่มที่ทำงานอยู่ของ nginx

nginx -h

เพื่อค้นหาไฟล์กำหนดค่า nginx

sudo vi /your_nginx_configuration_file

//in the file change its user and group
user your_user_name your_group_name;

//restart your nginx
sudo nginx -s reload

เนื่องจากผู้ใช้ที่เริ่มต้นใช้งาน nginx คือไม่มีใครและกลุ่มคือไม่มีใคร หากเราไม่ได้สังเกตเห็นผู้ใช้และกลุ่มนี้จะมีการแนะนำ 403


8

ฉันมีปัญหาเดียวกัน logfile แสดงให้ฉันเห็นข้อผิดพลาดนี้:

2016/03/30 14:35:51 [error] 11915#0: *3 directory index of "path_scripts/viewerjs/" is forbidden, client: IP.IP.IP.IP,     server: domain.com, request: "GET /scripts/viewerjs/ HTTP/1.1", host: "domain", referrer: "domain.com/new_project/do_update"

ฉันกำลังโฮสต์แอป PHP ด้วยเฟรมเวิร์ก codeignitor 403 Errorเมื่อฉันอยากจะดูไฟล์ที่อัปโหลดผมได้รับ

ปัญหาnginx.conf คือว่าไม่ได้กำหนดไว้อย่างถูกต้อง แทน

index index.html index.htm index.php

ฉันรวมเท่านั้น

index index.php

ฉันมี index.php ในรูทของฉันและฉันคิดว่าเพียงพอฉันผิด;) คำใบ้ให้ฉันNginxLibrary


ขอบคุณ .. ฉันอยู่กับเรือลำเดียวกัน .. ฉันใช้เวลาหลายชั่วโมงหาสาเหตุว่าทำไม WordPress ของฉันถึงใช้งานไม่ได้เลย! ดัชนีคำสั่งเป็นสิ่งจำเป็นในการกำหนดค่าหลักของ nginx สำหรับการติดตั้ง wordpress ของฉันให้ทำงาน include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; index index.html index.htm index.php;
mboy

6

คุณอาจได้รับสิ่งนี้เนื่องจากนโยบาย Nginx (เช่น "deny") หรือคุณอาจได้รับสิ่งนี้เนื่องจากการกำหนดค่า Nginx ผิดพลาดหรือคุณอาจได้รับสิ่งนี้เนื่องจากข้อ จำกัด ของระบบไฟล์

คุณสามารถตรวจสอบว่ามันในภายหลัง (และอาจเห็นหลักฐานของการกำหนดค่าที่ผิดโดยใช้ strace (ยกเว้น OP จะไม่สามารถเข้าถึงได้):

# pidof nginx
11853 11852

# strace -p 11853 -p 11852 -e trace=file -f
Process 11853 attached - interrupt to quit
Process 11852 attached - interrupt to quit
[pid 11853] stat("/var/www/html/kibanaindex.html", 0x7ffe04e93000) = -1 ENOENT (No such file or directory)
[pid 11853] stat("/var/www/html/kibana", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
^CProcess 11853 detached
Process 11852 detached

ที่นี่ฉันกำลังตรวจสอบกิจกรรมของระบบไฟล์ที่ทำโดย nginx ในขณะที่ทำการทดสอบ (ฉันมีข้อผิดพลาดเหมือนกับคุณ)

นี่เป็นส่วนหนึ่งของการกำหนดค่าของฉันในเวลานั้น

    location /kibana/3/ {
        alias /var/www/html/kibana;
        index index.html;
    }

ในกรณีของฉันอย่างชัดเจนแสดงให้เห็นว่าการเข้าร่วมใน "นามแฝง" กับ "ดัชนี" ไม่ใช่สิ่งที่ฉันคาดไว้และดูเหมือนว่าฉันต้องติดนิสัยในการต่อท้ายชื่อไดเรกทอรีด้วย / ดังนั้น ในกรณีของฉันทำงานต่อไปนี้:

    location /kibana/3/ {
        alias /var/www/html/kibana/;
        index index.html;
    }

ขอบคุณสำหรับสิ่งนี้. ฉันรู้ว่าฉันไม่มีปัญหาการอนุญาตและความคิดเห็นของคุณช่วยฉันหาวิธีแก้ปัญหา ฉันเพิ่ม "/" ที่ส่วนท้ายของชื่อแทนของฉันและทำงานได้ดี
kzahel

คุณเป็นฮีโร่ของฉัน @Cameron เคอร์ขึ้นอยู่กับประสบการณ์ของผมที่เป็นปัญหา Nginx เพิ่ม 403 /home/web/publicสำหรับไฟล์ที่ไม่พบในไดเรกทอรีเช่นนามแฝง ทำไม nginx พยายามเข้าถึงไฟล์ที่ไม่พบเหล่านี้เป็นเพราะฉันลืมที่จะลบบรรทัดนี้index index.html index.htm index.nginx-debian.html;เนื่องจากไฟล์นั้นไม่ได้อยู่ใน dir สาธารณะของฉัน
Agung Prasetyo

4

ดูเหมือนว่าปัญหาสิทธิ์บางอย่าง

พยายามตั้งค่าการอนุญาตทั้งหมดเหมือนที่คุณทำใน mysite1 ไปยังไซต์อื่น ๆ

โดยค่าเริ่มต้นไฟล์ควรเป็น 644 และ dirs 755 ตรวจสอบว่าผู้ใช้ที่เรียกใช้ nginx มีสิทธิ์อ่านไฟล์และ dirs


3

เปลี่ยนtry_filesไปเป็นชี้ไปที่index.phpเส้นทางใน "Laravel" ที่คุณพูดถึงมันควรจะเป็นแบบนี้

location / {
    try_files $uri $uri/ /public/index.php$request_uri;
}

และในโครงการ "codeigniter" ลองแบบนี้

location / {
    try_files $uri $uri/ /public_web/index.php$request_uri;
}

3

เนื่องจากคุณใช้php-fpmงานอยู่คุณควรตรวจสอบให้แน่ใจว่าphp-fpmผู้ใช้นั้นเหมือนกับnginxผู้ใช้

ตรวจสอบ/etc/php-fpm.d/www.confและตั้งค่าผู้ใช้ php และกลุ่มเป็นnginxถ้าไม่

php-fpmต้องการของผู้ใช้เขียนได้รับอนุญาต


2

คุณต้องได้รับอนุญาตให้ดำเนินการในไดเรกทอรีไฟล์คงที่ของคุณ นอกจากนี้ยังต้องมีการ chown'ed โดยผู้ใช้ nginx และกลุ่มของคุณ


1
ฉันคิดว่าเขาต้องการเพียงสิทธิ์อ่านเพื่อกระบวนการ nginx?
Complistic

2
location ~* \.php$ {
    ...
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;    
}

เปลี่ยนค่าเริ่มต้น

fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

ถึง

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

แก้ไขปัญหาของฉัน


1
6833#0: *1 directory index of "/path/to/your/app" is forbidden, client: 127.0.0.1, server: lol.com, request: "GET / HTTP/1.1", host: "localhost"    

ฉันใช้งาน Ubuntu 15.10 และพบข้อผิดพลาดที่ต้องห้าม 403 เนื่องจากเหตุผลง่ายๆ ใน nginx.conf (ไฟล์กำหนดค่าสำหรับ nginx) ผู้ใช้คือ 'www-data' เมื่อฉันเปลี่ยนชื่อผู้ใช้เป็น [ชื่อผู้ใช้ของฉัน] มันใช้งานได้ดีโดยสมมติว่าได้รับสิทธิ์ที่จำเป็นในชื่อผู้ใช้ ขั้นตอนตามด้วยฉัน:

chmod 755 /path/to/your/app    

ไฟล์การกำหนดค่าของฉันมีลักษณะเช่นนี้:

**user [my username]**;#I made the change here.
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}

http {

##
# Basic Settings
##

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;

# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;

##
# SSL Settings
##

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;

##
# Logging Settings
##

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

##
# Gzip Settings
##

gzip on;
gzip_disable "msie6";

# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

##
# Virtual Host Configs
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;


server {
    listen 80;

    server_name My_Server;

    access_log  /var/log/nginx/access.log;
    error_log  /var/log/nginx/error.log;

    location / {
        proxy_pass         http://127.0.0.1:8000;
        proxy_redirect     off;

        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}
}

1

สำหรับฉันปัญหาคือเส้นทางอื่นที่ไม่ใช่เส้นทางพื้นฐานทำงานได้การเพิ่มบรรทัดนี้แก้ไขปัญหาของฉัน:

index           index.php;

เต็มสิ่ง:

server {

    server_name example.dev;
    root /var/www/example/public;
    index           index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

1

เพื่อแก้ไขปัญหานี้ฉันใช้เวลาหนึ่งคืนเต็ม นี่คือสองเซ็นต์ของฉันในเรื่องนี้

ตรวจสอบว่าคุณใช้hhvmเป็นล่าม php หรือไม่ เป็นไปได้ว่ามันกำลังฟังพอร์ต 9000 ดังนั้นคุณจะต้องแก้ไขการกำหนดค่าเว็บเซิร์ฟเวอร์ของคุณ

นี่คือหมายเหตุด้านข้าง: หากคุณใช้ mysql และการเชื่อมต่อจาก hhvm ไปยัง mysql นั้นเป็นไปไม่ได้ให้ตรวจสอบว่าคุณติดตั้งapparmorหรือไม่ ปิดการใช้งาน


0

ฉันแก้ไขปัญหาของฉันได้อย่างไรหากฉันกำหนดค่าตามชอบ:

location = /login {
    index  login2.html;
}

มันจะแสดงข้อผิดพลาด 403

[error] 4212#2916: *2 directory index of "D:\path/to/login/" is forbidden

ฉันพยายามautoindex onแล้ว แต่ไม่ทำงาน หากฉันเปลี่ยนการกำหนดค่าของฉันเช่นนี้มันใช้งานได้

location = /login/ {
    index  login2.html;
}

ฉันคิดว่าการจับคู่ที่ถูกต้องหากเป็นเส้นทางควรเป็นไดเรกทอรี


0

เมื่อคุณต้องการเก็บตัวเลือกไดเรกทอรีไว้คุณสามารถใส่ index.php ล่วงหน้า $ uri แบบนี้

try_files /index.php $uri $uri/
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.