[英]Apache/PHP confuses dir name and script filename?
http://192.168.1.116/wordpress/wp-content/themes/bktf/frameworks/back-end/theme-options/options/fields/font/field_font.js.php?ver=1358535557
為什么為什么這樣的URL是http://192.168.1.116/wordpress/wp-content/themes/bktf/frameworks/back-end/theme-options/options/fields/font/field_font.js.php?ver=1358535557
...結束提供/wordpress/wp-content/themes/bktf/frameworks/back-end/theme-options.php/options/fields/font/field_font.js.php
(這也是$ _SERVER的內容['PHP_SELF'])。
...在同一個back-end
父目錄中同時具有目錄名theme-options
和文件名theme-options.php
情況下?
另外, $_SERVER['SCRIPT_NAME']
是/wordpress/wp-content/themes/bktf/frameworks/back-end/theme-options.php
。
為什么Apache或PHP模塊僅由於存在與目錄相同的腳本,而在目錄名末尾自動添加.php
???
注意:我使用的是Apache和PHP的默認配置,用於Ubuntu 12LTS服務器,通過taskel安裝,然后使用https://launchpad.net/~ondrej/+archive/php5 PPA升級到PHP 5.4,並帶有所有配置文件與默認值/示例基本相同-這是一台基本的LAMP服務器,旨在出於開發目的在VM中運行。
PHP_SELF
是指服務器上正在運行的文件,而不是當前的URL。 閱讀PHP $ _SERVER手冊以獲取更多信息: http : //php.net/manual/zh/reserved.variables.server.php
請嘗試$_SERVER['REQUEST_URI']
。 這將在最后提供查詢字符串。
PHP_SELF
=當前執行腳本的文件名,相對於文檔根目錄。 SCRIPT_NAME
=當前腳本的路徑。
好的,我的問題有點令人困惑,因此我可以理解為什么每個人回答的問題都不同於我提出的問題。
無論如何,在我的情況下發生的是沒有theme-options
目錄 (將其重命名並忘記了),Apache將諸如/[...]/theme-options/[...]
類的請求/[...]/theme-options/[...]
/[...]/theme-options.php/[...]
因為有一個theme-options.php
腳本 。
我仍然不知道為什么具有所有默認配置的Ubuntu LAMP安裝程序會發生這種奇怪的路徑變化,但是我解決了我的緊迫問題。
由於啟用了MultiViews選項,Apache將請求轉換為具有擴展名的特定文件: http : //httpd.apache.org/docs/2.2/mod/mod_negotiation.html#multiviews
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.