簡體   English   中英

為什么www.example.com/index.php/my/path/here由index.php處理?

[英]Why www.example.com/index.php/my/path/here is processed by index.php?

我只是很好奇,如何調用apache的功能來指導這樣的請求

www.example.com/index.php/my/path/here

到文件index.php? 在第一時刻,您可能會認為,如果此請求導致404錯誤頁面將是正確的,因為站點根目錄中沒有名為index.php的文件夾

順便說一句,有沒有可能關閉這個Apache功能(如果它是一個功能),這樣的請求真的最終得到404?

這不是URL重寫功能。 或者至少它並不需要的人。 請參閱AcceptPathInfo指令

此指令控制是否接受或拒絕包含跟隨實際文件名(或現有目錄中不存在的文件)的尾隨路徑名信息的請求。 尾隨路徑名信息可供PATH_INFO環境變量中的腳本使用。

例如,假設位置/ test /指向僅包含單個文件here.html 然后請求/test/here.html/more/test/nothere.html/more都收集/more作為PATH_INFO

它最初是一個CGI環境變量

  • PATH_INFO

客戶端給出的額外路徑信息。 換句話說,可以通過虛擬路徑名訪問腳本,然后在此路徑末尾添加額外信息。 額外信息以PATH_INFO形式發送。 如果服務器在傳遞給CGI腳本之前來自URL,則應該對此信息進行解碼。

請參閱此鏈接以獲取解釋。

這是一種將信息傳遞給(在本例中) index.php腳本而不使用查詢字符串的方法,一些搜索引擎會忽略該字符串,因此文章的名稱為“搜索引擎友好URL”。

我可以推薦文章中討論的第三種方法,因為它避免了奇怪的URLS,中間有index.php

在那里你可以有一個像index.php這樣的文件從服務器檢查PATH_INFO並處理整個內容樹。 雖然我無法將其關閉,但您可以讓index.php檢查非空的$ _SERVER ['PATH_INFO']並通過header()函數響應404代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM