2015-04-02 34 views
-2

當我們設置laravel時,默認的url會有「public」。拉拉維爾公共網址的目的是什麼?

示例:本地主機/ laravel /大衆/用戶

我們知道,我們一直想刪除「公」在我們的網址特別是當我們去生產。

我搜索在互聯網上,看上去就像刪除「公」的URL需要一些工作來實現類似文件移動到其他文件夾,修改的.htaccess等..

我的問題是,什麼目的「公共」網址? 爲什麼不拉拉維爾提供了一個簡單的方法來刪除「公共」網址.. 我知道Laravel現在很流行,但爲什麼給初學者在刪除部分網址頭痛?

讓我知道你的想法

+1

「當我們設置laravel時,默認的網址會有'公開'。」不是如果你做得對,你不會。你的web服務器應該指向'public'作爲文檔根目錄。 – ceejayoz 2015-04-02 19:17:38

回答

2

public目錄包含的所有文件,應該是從外面訪問。 這樣,沒有人可以訪問您的應用程序中的任何其他文件。

如何刪除URL中的public?那麼你根本不會「移除」它。相反,你應該在public指向您的域名(虛擬主機)直接(這被稱爲文檔根)

如果你沒有做到這一點的可能性(通常是因爲你上的共享具有非常有限的權限託管)那麼只有這樣,您才需要移動文件或使用.htaccess的解決方法。但是,如果你的主機供應商不允許您設置文檔根,我會考慮切換到另外一...


順便說一句:這不是真正的獨一無二的Laravel。很多PHP框架(Zend Framework,Symfony等)都有專門的文件目錄,這些文件應該是可訪問的 - 與框架核心和應用程序分開。


如果您遇到問題設置您的開發環境中正常,你應該嘗試Laravel Homestead。這是一個預配置的流浪箱,使得它很容易讓你的網站在本地啓動和運行(還附帶沒有public在您的網址!)

1

當你讓你的站點的根目錄指向public文件夾,例如www.mysite.com指向/path/to/laravel/public,有幾個優點。

您的文件在public之外,就像您的.env和您的密碼一樣,無法訪問www.mysite.com/../.env等其他常見「漏洞」,只需採取這種簡單方法即可阻止。

這在其他框架中也是相當普遍的,不僅Laravel或PHP。