84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
我使用的是 apache + phalcon(PHP框架),配置了框架的路由規則。訪問的時候既能透過資料夾路徑直接訪問,也能t透過路由規則匹配訪問,我想弄清楚apache怎麼處理這些請求的,底層的實作原理是什麼?
人生最曼妙的风景,竟是内心的淡定与从容!
訪問的時候既能透過資料夾路徑直接訪問,也能t透過路由規則匹配訪問。我想問apache分發請求的時候,是按照什麼順序?
在這兩種情況中,並不存在分發請求的問題,因為這本身就是兩個不一樣的請求。
對於路由規則的這個請求來說,Apache會先到專案根目錄下尋找 .htaccess 配置文件,找到之后读取其中的信息。在本项目中, .htaccess中写的应该是非静态文件全部指向index.php。
.htaccess
非静态文件全部指向index.php
回到剛才你的問題:
透過資料夾路徑直接存取說明Apache找到了這個“靜態檔案”,就是那個目標php檔案。
透過路由規則匹配的URL訪問,Apache會發現這個靜態檔案不存在,就會把請求指向index.php,這時候請求就由PHP程式碼接管,去匹配路由規則,處理頁面。
index.php
在這兩種情況中,並不存在分發請求的問題,因為這本身就是兩個不一樣的請求。
對於路由規則的這個請求來說,Apache會先到專案根目錄下尋找
.htaccess
配置文件,找到之后读取其中的信息。在本项目中,.htaccess
中写的应该是非静态文件全部指向index.php
。回到剛才你的問題:
透過資料夾路徑直接存取說明Apache找到了這個“靜態檔案”,就是那個目標php檔案。
透過路由規則匹配的URL訪問,Apache會發現這個靜態檔案不存在,就會把請求指向
index.php
,這時候請求就由PHP程式碼接管,去匹配路由規則,處理頁面。