你真正想要的是「回顧」支持與默認類型。設置你的Apache虛擬主機(東西)是這樣的:
<VirtualHost *:80>
ServerName example.com:80
ServerAlias www.example.com
DocumentRoot "/path/to/root/dir"
AddDefaultCharset UTF-8
ErrorDocument 403 "/403.php"
ErrorDocument 404 "/404.php"
<Directory /path/to/root/dir>
Options Indexes FollowSymLinks
DefaultType application/x-httpd-php
AllowOverride All
Order deny,allow
Allow from all
AddOutputFilterByType DEFLATE application/javascript text/css text/html text/plain text/xml
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !.index.ph.*
RewriteRule ^(.*)$ /index.php
</Directory>
</VirtualHost>
的重要行是DefaultType application/x-httpd-php
,這意味着你現在可以擺脫.php
文件擴展名。
您現在可以使用一個URL,如http://example.com/this_is_a_php_page
,您也可以使用http://example.com/this_is_a_php_page/with_a_path_info_var
。
因此,在this_is_a_php_page
(這實際上是一個沒有擴展名的.php文件),您可以使用$_SERVER['PATH_INFO']
來檢查在URI中傳遞的變量和變量。
編輯: 添加了RewriteEngine
和規則,推動一切index.php
。這意味着您現在在服務器上有一個名爲index.php
的(實際)單個頁面,它將需要檢查$_SERVER['REDIRECT_URL']
var的真實請求。
例如,對http://example.com/a_page
的請求現在將加載index.php
並將a_page
傳遞給$_SERVER['REDIRECT_URL']
。注意:這個解決方案會將所有內容都推送到index.php。您將需要包括像一個例外:
RewriteCond %{REQUEST_FILENAME} !.not_me_plz.*
要允許與not_me_plz
文件開頭的文件送達「預期」。
好的。所以你的問題是什麼!!!!!!!!!!!!!!! –
@mamdouhalramadan問題是我如何「PHP:文件和返回文件路徑的搜索目錄樹」 –
在Apache,PHP,Ruby,...什麼語言? – Tigger