ฉันต้องการอนุญาตให้ผู้ใช้สามารถเข้าชมได้เท่านั้น index.php
(และก็เพียง /
) บนเซิร์ฟเวอร์ของฉัน และไม่มีอะไรอื่น (ส่งคืน 403 หากถูกต้อง และ 404 หากไฟล์ไม่ถูกต้อง)
ฉันจะทำสิ่งนี้ได้อย่างไร ฉันได้ลองวิธีแก้ไขปัญหาต่อไปนี้แล้ว
ปฏิเสธการเข้าถึงไฟล์ทั้งหมด ยกเว้น index.html apache
ปฏิเสธการเข้าถึงไฟล์ทั้งหมดยกเว้น index.php แต่อนุญาตให้เข้าถึงผ่าน "/" ในไฟล์ htaccess
แต่ดูเหมือนจะไม่มีผลใดๆ
ไฟล์ .htaccess ของฉันคือไฟล์นี้ แต่ไม่มีผลใด ๆ และฉันยังคงสามารถเข้าถึงไฟล์อื่น ๆ บนเซิร์ฟเวอร์ของฉันได้:
คำสั่งอนุญาตปฏิเสธ
ปฏิเสธจากทั้งหมด
<ดัชนีการจับคู่ไฟล์\.php>
อนุญาตจากทั้งหมด
</FilesMatch>
ฉันไม่แน่ใจว่าฉันต้องกำหนดอะไรในการกำหนดค่า virtualhosts ด้วยหรือไม่
ไฟล์ virtualhosts ของฉันคือ:
ServerAdmin webmaster@localhost
ชื่อเซิร์ฟเวอร์ server.mydomain.com
ServerAlias server.mydomain.com
DocumentRoot /var/www/server.mydomain.com
DirectoryIndex index.php
บันทึกข้อผิดพลาด ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log รวมกัน
SSLCertificateFile /etc/letsencrypt/live/server.mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/server.mydomain.com/privkey.pem
รวม /etc/letsencrypt/options-ssl-apache.conf
apache2ctl -S เอาต์พุตคือ:
การกำหนดค่า VirtualHost:
*: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)
รูทเซิร์ฟเวอร์: "/etc/apache2"
รูทเอกสารหลัก: "/var/www/html"
ErrorLog หลัก: "/var/log/apache2/error.log"
Mutex การเย็บ ssl: using_defaults
Mutex ssl-cache: using_defaults
ค่าเริ่มต้นของ Mutex: dir="/var/run/apache2/" กลไก=ค่าเริ่มต้น
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex ssl-เย็บเล่ม-รีเฟรช: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
กำหนด: DUMP_VHOSTS
กำหนด: DUMP_RUN_CFG
ผู้ใช้: name="www-data" id=33
กลุ่ม: name="www-data" id=33