403 ต้องห้ามเมื่อพยายามเข้าถึงหน้าทดสอบอย่างง่ายของฉัน


13

ฉันเพิ่งติดตั้ง nginx และฉันพยายามตั้งค่าไซต์แรกของฉัน ฉันพยายามใช้ nginx กับ php-fpm มีการติดตั้ง nginx (เมื่อฉันไปที่ ip ของฉันฉันได้รับการต้อนรับเริ่มต้นไปที่หน้า nginx)

ตอนนี้ฉันกำลังพยายามทำให้สคริปต์ทำงานง่าย:

<?php
phpinfo();

แต่ฉันกดปุ่มหน้า 403 ที่ต้องห้ามต่อไปเรื่อย ๆ ในบันทึกของโฮสต์เสมือนของฉันฉันเห็นบรรทัดจำนวนมากเช่น:

2012/05/18 01:29:45 [error] 4272#0: *1 access forbidden by rule, client: x.170.147.49, server: example.com, request: "GET / HTTP/1.1", host: "example.com"

ไฟล์เป็น/srv/www/test/index.phpของ nginx ซึ่งเป็นเจ้าของ (ฉันไปว่าเป็น777เส้นทางที่สมบูรณ์รวมถึงไฟล์ที่ไม่มีประโยชน์)

ฉันได้ตรวจสอบว่า nginx ทำงานภายใต้ผู้ใช้และกลุ่มnginx/nginxในการกำหนดค่าและเป็น ใน nginx.conf ฉันได้เปลี่ยนพา ธ การกำหนดค่าเริ่มต้นรวมถึงพา ธ เพื่อให้แน่ใจว่าไม่มีการกำหนดค่าอื่น ๆ เข้ามาขวางทาง ( include /etc/nginx/sites-enabled/)

การกำหนดค่าที่ฉันใช้ดูเหมือนว่า (หากคุณต้องการการกำหนดค่าอื่น ๆ (php-fpm / nginx.conf) โปรดแจ้งให้เราทราบ):

server {
    listen 80;

    server_name example.com;
    root /srv/www/test;
    access_log /var/log/nginx/example-access.log;
    error_log  /var/log/nginx/example-error.log error;

    location ~ /.          { access_log off; log_not_found off; deny all; }
    location ~ ~$           { access_log off; log_not_found off; deny all; }

    location ~* .(js|css|png|jpg|jpeg|gif|ico|xml|swf|flv|eot|ttf|woff|pdf|xls|htc)$ {
        add_header Pragma "public";
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
        access_log off;
        log_not_found off;
        expires   360d;
    }

    location ~ /.ht {
        deny all;
        access_log off;
        log_not_found off;
    }

    location ~ /. {
        access_log off;
        log_not_found off;
        deny all;
    }

    location ~ ^/(index|frontend_dev|admin|staging).php($|/) {
        #rewrite ^/(.*)/$ /$1 permanent;
        fastcgi_split_path_info ^(.+.php)(.*)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;

    }

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

คำตอบ:


22

การกำหนดค่าของคุณปิดกั้นโดยเจตนา:

location ~ /. {
    access_log off;
    log_not_found off;
    deny all;
}

นั่นจะตรงกับคำขอใด ๆ ที่มีเครื่องหมายทับตามด้วยอักขระทุกชนิด .ตัวละครในการแสดงออกปกติหมายถึง "ตัวอักษรใด ๆ"

ฉันสมมติว่าคุณหมายถึงการตรวจสอบตัวอักษร.; นั่นคือการกำหนดค่านี้:

location ~ /\. {

แจ้งให้เราทราบหากไม่ใช่ในกรณีนี้!


OMG ฉันรู้สึกงี่เง่ามากในตอนนี้ (เมื่อพิจารณาจากความจริงที่ว่าฉันได้แสดงนำในเรื่องนี้สำหรับบางเวลา ขอบคุณสำหรับการตอบกลับที่รวดเร็วของคุณ!
user6669
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.