ก่อนอื่นคุณควรตรวจสอบว่าเว็บไซต์ใดโฮสต์บนเซิร์ฟเวอร์
# apachectl -t -D DUMP_VHOSTS
จากนั้นเมื่อคุณจะพบเว็บไซต์ตรวจสอบไฟล์การกำหนดค่าที่สอดคล้องกันสำหรับตัวเลือก DocumentRoot ตัวอย่างเช่น
# apachectl -t -D DUMP_VHOSTS
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server 192.168.88.87 (/etc/httpd/conf.d/192.168.88.87.conf:1)
port 80 namevhost 192.168.88.87 (/etc/httpd/conf.d/192.168.88.87.conf:1)
port 80 namevhost gl-hooks.example.net (/etc/httpd/conf.d/hooks.conf:1)
alias example.net
alias www.example.net
คุณต้องการทราบว่าเว็บไซต์นั้นอยู่ที่ไหน example.net
# grep DocumentRoot /etc/httpd/conf.d/hooks.conf
DocumentRoot /vhosts/gl-hooks.example.net/
# cd /vhosts/gl-hooks.example.net/
# ls -la
total 4484
drwxr-xr-x 6 apache apache 4096 Feb 10 11:59 .
drwxr-xr-x 14 root root 4096 Feb 23 08:54 ..
-rw-r--r-- 1 root root 1078 Dec 19 09:31 favicon.ico
-rw-r--r-- 1 apache apache 195 Dec 25 14:51 .htaccess
-rw-r--r-- 1 apache apache 98 Dec 7 10:52 index.html
ควรมองหาชื่อแทนและเปลี่ยนเส้นทาง / เขียนใหม่
คุณควรให้ความสนใจกับคำสั่งนามแฝงใด ๆ ตัวอย่างเช่นด้วยการตั้งค่าต่อไปนี้
<VirtualHost *:80>
ServerName example.net
ServerAlias www.example.net
...
DocumentRoot /vhosts/default/public_html/
Alias /api/ /vhosts/default/public_api/
...
</VirtualHost>
เมื่อคุณจะเข้าถึงhttp://example.net/some.file.html - apache จะดูไฟล์ที่ / vhosts / default / public_html / ในเวลาเดียวกันด้วยhttp://example.net/api/some.file .htmlไฟล์จะถูกดูที่ / vhosts / default / public_api /
สิ่งที่เกี่ยวกับการเขียน / เปลี่ยนเส้นทางโดยเฉพาะอย่างยิ่งการเขียนโปรแกรม (เมื่อการเปลี่ยนเส้นทางถูกทริกเกอร์ด้วยรหัส php บางอย่าง) ฉันคิดว่าไม่มีวิธีที่ง่ายในการค้นหากรณีดังกล่าว