2016-12-26 50 views
1

我正在嘗試在共享主機上部署新的Laravel項目。我還希望保持我的Laravel項目應用程序設置與在本地計算機上的「標準Laravel設置」相同。如何在不改變目錄設置的情況下發布共享虛擬主機上的laravel?

我用FileZilla將所有文件從本地機器傳輸到虛擬主機。

so/public_html包含我所有的laravel文件和文件夾。

但是,當我去mydomain.com時,我得到提供者的默認頁面。當我去mydomain.com/public時回答我沒有錯誤的白頁。

爲什麼在訪問mydomain.com/public時會得到一個白頁?

另外,我該如何讓mydomain.com指向laravel的公共目錄?

+0

你是誰使用的主機?對他們來說,這對我們來說可能是一個更好的問題。 – JRLambert

回答

0

1)爲什麼在訪問mydomain.com/public時會得到一個白頁?

可能是因爲您沒有確定存儲文件夾是否可寫入。

2)我該如何讓mydomain.com指向laravel的公共目錄?

這裏是把laravel公共目錄下的一個簡單的方法。*

首先,你必須複製或重命名文件server.phpindex.php,那麼你可以在你的laravel安裝的根使用.htaccess所以你只能訪問index.php或像css,js,字體,圖像等資源..這應該位於public/

這裏是我使用的.htaccess:(把它放在laravel/server.php的相同目錄)

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ /$1 [L,R=301] 

RewriteCond %{REQUEST_URI} ! (\.ttf|\.woff|\.woff2|\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^/public/ 
RewriteRule ^(css|js|images|fonts)/(.*)$ public/$1/$2 [L,NC] 

RewriteCond $1 !^(index\.php) 
RewriteRule ^(.*)$ index.php [L] 

*(請注意,如果你不是把laravel公共目錄內的其他沒有其他選擇,這種解決方案只能用於)

+0

我有我的存儲文件夾'777'的權限,所以這不會是問題。一旦我將server.php重命名爲index.php,然後將.htaccess文件更名爲500內部服務器錯誤 – Jaylen

+0

您的服務器是否符合laravel 5.2的要求,並且是否啓用了mod_rewrite? – Andy

+0

它應該!我在fastcomet.com上託管。 – Jaylen

相關問題