Vì lý do bảo mật, tôi đang cố vô hiệu hóa tất cả các tệp PHP ngoại trừ /public/index.php.
Tôi có cấu hình nginx này, rất tiếc là không hoạt động:
gốc /var/www/html/công khai;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
add_header Chính sách giới thiệu "cùng nguồn gốc";
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
add_header Cross-Origin-Opener-Policy "same-origin";
bộ ký tự utf-8;
địa điểm / {
try_files $uri $uri/ /index.php?$query_string;
}
vị trí = /favicon.ico { truy cập_đăng xuất; log_not_found tắt; }
vị trí = /robots.txt { truy cập_đăng xuất; log_not_found tắt; }
vị trí ~ /\.(?! nổi tiếng).* {
Phủ nhận tất cả;
}
vị trí ~ \.(html|htm|env)$ {
Phủ nhận tất cả;
}
vị trí ~ \.(php|phar)$ {
vị trí !~ ^/index\.php$ {
Phủ nhận tất cả;
}
}
Phần này không hoạt động đối với tôi.
vị trí ~ \.(php|phar)$ {
vị trí !~ ^/index\.php$ {
Phủ nhận tất cả;
}
}
Gốc tài liệu được đặt thành/công khai và trong thư mục đó tôi cũng có .htaccess này:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Điều gì sẽ là cách tốt nhất và an toàn nhất để làm điều đó?