Điểm:1

Làm cách nào tôi có thể hạn chế quyền truy cập vào `/` và cả `/index.php` trên máy chủ của mình nhưng không cho phép gì khác?

lá cờ jp

Tôi muốn cho phép người dùng chỉ có thể truy cập index.php (và cũng chỉ /) trên máy chủ của tôi và không có gì khác (trả về 403 nếu hợp lệ và 404 nếu tệp không hợp lệ).

Tôi có thể làm cái này như thế nào? Tôi đã thử các giải pháp sau Từ chối quyền truy cập vào tất cả các tệp ngoại trừ index.html apache

Từ chối quyền truy cập vào tất cả các tệp ngoại trừ index.php nhưng cho phép truy cập thông qua "/" trong tệp htaccess

nhưng dường như chúng không có tác dụng gì.

Tệp .htaccess của tôi là thế này, nhưng nó không có tác dụng và tôi vẫn có thể truy cập các tệp khác trên máy chủ của mình:

Lệnh cho phép, từ chối
Tư chôi tât cả
<FilesMatch index\.php>
        cho phép từ tất cả
</FilesMatch>

Tôi không chắc liệu mình có cần xác định bất cứ điều gì trong cấu hình máy chủ ảo của mình không?

Tệp máy chủ ảo của tôi là:

Quản trị viên web ServerAdmin@localhost
Tên máy chủ server.mydomain.com
ServerAlias ​​server.mydomain.com
DocumentRoot /var/www/server.mydomain.com
Directory Index index.php
Nhật ký lỗi ${APACHE_LOG_DIR}/error.log
Nhật ký tùy chỉnh ${APACHE_LOG_DIR}/access.log kết hợp

SSLCertificateFile /etc/letsencrypt/live/server.mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/server.mydomain.com/privkey.pem
Bao gồm /etc/letsencrypt/options-ssl-apache.conf

apache2ctl -S đầu ra là:

Cấu hình máy chủ ảo:
*:443 server.mydomain.com (/etc/apache2/sites-enabled/server.mydomain.com-le-ssl.conf:2)
*:80 server.mydomain.com (/etc/apache2/sites-enabled/server.mydomain.com.conf:1)
ServerRoot: "/etc/Apache2"
Tài liệu chínhRoot: "/var/www/html"
Nhật ký lỗi chính: "/var/log/apache2/error.log"
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex mặc định: dir="/var/run/apache2/"cơ chế=mặc định
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex ssl-stapling-refresh: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Xác định: DUMP_VHOSTS
Xác định: DUMP_RUN_CFG
Người dùng: name="www-data" id=33
Nhóm: name="www-data" id=33
Điểm:1
lá cờ us
Rob

IMHO bạn đang đi sai hướng và đang cố gắng giải quyết một vấn đề có thể tránh được hoàn toàn:

Đơn giản là không lưu trữ các tệp và thư mục không trực tuyến trong DocumentRoot của bạn.

Giới hạn nội dung của thư mục /var/www/server.example.com chỉ có thế index.php tập tin và bạn không thể đi sai.


Câu hỏi này được gắn thẻ với lịch sử phiên bản và cú pháp từ đó không phù hợp với bản phát hành Apache httpd 2.4 hiện tại. - Nhìn thấy https://httpd.Apache.org/docs/2.4/upgrading.html


Khi bạn muốn xuất bản một cái gì đó dưới http://www.example.com/some-path/ sử dụng bí danh chỉ thị để hiển thị hoàn toàn một thư mục khác thay vì tạo một thư mục con /var/www/server.example.com/some-path/ (ví dụ tạo /var/www//một số đường dẫn) Và sử dụng:

<VirtualHost *:80
    ServerAdmin webmaster@localhost
    ServerName server.mydomain.com
    ServerAlias server.mydomain.com
    DocumentRoot /var/www/server.example.com

    Alias /some-path "/var/www/some-path"

    <Directory "/var/www/some-path"> 
       # add settings here, for example
       Order deny,allow
       Deny from all
       Allow From 127.0.0.1
    </Directory>
</VirtualHost>

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.