2016-11-23 57 views
5

我使用Laravel框架。如你所知,它的目錄看起來是這樣的:如何在Laravel中以root身份製作公用文件夾?

enter image description here

要打開我的網站(Route::get('/', '[email protected]');)的主頁我需要打開目錄的/public文件夾中。換句話說,看到我的網站的第一頁,這裏是網址:

http://example.com/public 

反正只有我的域名(http://example.com/)不是我的根。我如何以root身份製作/public文件夾?


確實我找到了解決方法。我可以在根上創建index.php並將重定向代碼寫入/public文件夾。所以當用戶輸入http://example.com/時,它會自動重定向到http://example.com/public。但這仍然很難看。我不喜歡在網址中看到/public。任何建議?

+0

的可能的複製[Laravel 5 - 從URL刪除公共](HTTP:/ /stackoverflow.com/questions/28364496/laravel-5-remove-public-from-url) –

+0

你的FTP上的目錄結構是什麼?像「domains/domain.com/public_html」? –

回答

5

有很多方法可以做到這一點。

你只需要削減index.php並從的.htaccess公共目錄並粘貼在根目錄下,多數民衆贊成和替換兩行index.php作爲

require __DIR__.'/bootstrap/autoload.php'; 
$app = require_once __DIR__.'/bootstrap/app.php'; 

最好的辦法是.htaccess。在Laravel安裝的根目錄下創建.htaccess文件。下面的代碼將適用於此。

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteRule ^(.*)$ public/$1 [L] 
</IfModule> 

你可以從這裏讀到:WAY TO DO

+0

我應該將這兩行寫在根上存在的'index.php'文件中嗎? –

+0

@MartinAJ你是否從公共目錄中刪除了index.php和.htaccess並將其粘貼到laravel的根目錄? –

+0

啊...還沒試試,試試吧 –

1

不要mofidy任何Laravel文件。使用網絡服務器(Apache或Nginx)指向Laravel project to public directory

對於Apache您可以使用這些指令:

DocumentRoot "/path_to_laravel_project/public" 
<Directory "/path_to_laravel_project/public"> 

對於nginx的,你應該改變這一行:

root /path_to_laravel_project/public; 
+0

我應該在根目錄下的'.htaccess'文件中寫下這兩行*(我使用Apache)*嗎? –

+0

@MartinAJ通常你把它放在主配置文件或虛擬主機配置中。 –

+0

好的,根目錄下有一個'/ config'文件夾。所以?我應該在其中創建任何文件嗎? –

相關問題