iT邦幫忙

0

php ajax路徑

今天在寫php遇到問題
加入有一個檔案在
/var/www/number/00/no.php

如果我在php include要把 /var/www/number/00/no.php都載入

但舉凡圖片、ajax在html寫的時候都要在
httpd裡面寫虛擬路徑 Alian /number/ "/var/www/number/"
然後要用虛擬路徑寫
ex
ajax的url:"/number/no.php"才可以載入

但是如果我把虛擬路徑拔掉url:"/var/www/number/00/no.php"就一定報錯

是否只要在html寫的就要虛擬路徑呢?
不然直接寫相對或絕對路徑嗎?

-----補充-----
事前設定
Alian /cityhouse "/var/wwe/cityhouse/00/"

2個檔案
(名字就亂取了)
1./var/www/cityhouse/00/public/aaa.php
2./var/www/cityhouse/00/public/bbb.php

使用技術ajax(資料不重要跳過,只用url)
aaa.php ajax bbb.php

1.可運行的狀態
url:/cityhouse/bbb.php(此時/cityhouse應該 是虛擬路徑)

2.不可運行
url:/var/www/cityhouse/00/bbb.php
url:/www/cityhouse/00/bbb.php
url:/cityhouse/00/bbb.php
url:/00/bbb.php

網址有內容:http://xxx.xxx.x.xxx/cityhouse/bbb.php (無效網址)

其餘皆找不到資料
如圖:
https://ithelp.ithome.com.tw/upload/images/20190815/20114846faeHjjqTaO.jpg

------補充------
下面那個是虛擬路徑
第一個:(只寫ajax的url)
url:"/cityhouse/public/deletexb.php
網頁成功抓到虛擬

第二個
url:"/cityhouse/00/public/deletexb.php"
第三個
url:"/var/www/cityhouse/00/public/deletexb.php"
以上兩個都抓不到

檔案路徑:/var/www/cityhouse/00/public/deletexb.php

如圖https://ithelp.ithome.com.tw/upload/images/20190815/20114846Jc0GmZgqyn.jpg

小魚 iT邦高手 1 級 ‧ 2019-08-15 23:40:41 檢舉
忽然想到,
根目錄不是應該是 /var/www/html/ 嗎?
guua70927 iT邦新手 5 級 ‧ 2019-08-16 21:55:36 檢舉
不一定吧,/var/www的確是固定的,後面我就不清楚
player iT邦大師 1 級 ‧ 2019-08-16 23:33:36 檢舉
不一定, 要看主機上的設定, 例如我的個人網站就是
/home/player/public_html

1 個回答

0
JackKuo
iT邦新手 5 級 ‧ 2019-08-16 10:16:56
最佳解答

一定要虛擬路徑呀,因為使用者是透過網頁伺服器去抓資料,並不是直接到你的電腦裡面抓
網頁伺服器都會有所謂的根目錄,通常 index.php 之類的首頁都會放在這一層
至於其他資料如 HTML function 等等就會放在此根目錄底下的某處、某資料夾內
也就是網頁伺服器不會認識根目錄以外的檔案、目錄!
因此,使用絕對路徑是行不通的

現在的 PHP 開發來說,index.php 都會導向到 route 去 parse url,再轉向特定頁面
感覺你是 PHP 初學者,滿建議你使用 Laravel 開發的。

順道一提,截圖品質有點差,可以的話之後直接貼上程式碼也行
或是使用 gist 來貼上程式碼
祝你 PHP 之路學習順利

看更多先前的回應...收起先前的回應...
guua70927 iT邦新手 5 級 ‧ 2019-08-16 21:58:54 檢舉

感謝你,那在問一下為什麼相對目錄的/cityhouse不用補上/00,如果不用虛擬目錄可以達到ajax嗎?我記得之前沒有設虛擬好像也有成功連接

guua70927 iT邦新手 5 級 ‧ 2019-08-16 21:59:58 檢舉

那請問有辦法接到別的專案(不同根目錄)的別的php嗎?是用網址?虛擬目錄?還是只能用搬過來呼叫?

guua70927 iT邦新手 5 級 ‧ 2019-08-16 21:59:59 檢舉

那請問有辦法接到別的專案(不同根目錄)的別的php嗎?是用網址?虛擬目錄?還是只能用搬過來呼叫?

JackKuo iT邦新手 5 級 ‧ 2019-08-19 10:24:01 檢舉

這就要看您的虛擬目錄設定了,我沒用過 IIS 因此無法回答
別的專案的話,建議您還是將其複製到當前目錄底下,以 git 概念來說是 submodule,或是以程式角度為 package,這兩個關鍵字您去查看看
若我的回答有幫助到您,還請動動手指將我選為最佳解答唷~

我要發表回答

立即登入回答