本地伺服器 - Apache 將所有請求重定向到 /index.php
我的本地伺服器上有一個奇怪的重定向問題。我有一個 VirtualHost 設置:
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "/Users/iMac/Sites/index.php" ServerName jordan.local ErrorLog "/private/var/log/apache2/jordan.local-error_log" CustomLog "/private/var/log/apache2/jordan.local-access_log" common <Directory "/Users/iMac/Sites/index.php"> AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
訪問
http://jordan.local
工作正常。但是,當我嘗試訪問子目錄jordan.local/somefolder/index.php
時,顯示的頁面是jordan.local/index.php
. 我沒有 .htaccess 文件,並且多次重新啟動 apache。Apache 版本:2.2.22 (Unix)
Mac OS X 10.7.5
如果有任何幫助,這是我的主機文件:
127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost fe80::1%lo0 localhost #74.208.10.249 gs.apple.com 127.0.0.1 jordan.local
我訪問的所有本地 URL(不存在)在我的自定義訪問日誌中顯示為 200 響應程式碼。
我的 Apache 錯誤日誌給出了這個警告:
Warning: DocumentRoot [/Users/iMac/Sites/index.php] does not exist
雖然
/Users/iMac/Sites/index.php
是一個有效的路徑。如果您需要更多資訊,請告訴我。
請更改
DocumentRoot
為指向目錄,而不是文件。參考:http ://httpd.apache.org/docs/2.2/mod/core.html#documentroot文件根
DirectiveDescription:形成從網路上可見的主文件樹的目錄
語法:
DocumentRoot directory-path
預設:
DocumentRoot /usr/local/apache/htdocs
上下文:伺服器配置,虛擬主機
狀態:核心
模組:核心
該指令設置
httpd
將提供文件的目錄。除非與類似的指令匹配,否則Alias
伺服器會將請求的 URL 的路徑附加到文件根目錄以生成文件的路徑。例子:
DocumentRoot /usr/web
然後訪問
http://www.my.host.com/index.html
指的是/usr/web/index.html
. 如果目錄路徑不是絕對的,則假定它是相對於ServerRoot
.
DocumentRoot
應該指定不帶斜杠。