如何在不更改目录设置的情况下在共享Web主机上发布laravel?

时间:2016-12-26 21:47:56

标签: php laravel laravel-5 laravel-5.2 web-hosting

我正在尝试在共享主机上部署新的Laravel项目。我还想保持我的Laravel项目应用程序设置与我在本地机器上的标准Laravel设置"相同。

我使用FileZilla将所有文件从本地计算机传输到网络托管。

所以/ public_html包含我所有的laravel文件和文件夹。

然而,当我去mydomain.com时,我得到了提供商的默认页面。当我去mydomain.com/public时,我得到一个没有错误的白页。

访问mydomain.com/public时,为什么会出现白页?

另外,如何让mydomain.com指向laravel的公共目录?

1 个答案:

答案 0 :(得分:0)

  

1)访问mydomain.com/public时为什么会出现白页?

可能是因为您没有确定存储文件夹是否可写。

  

2)如何让mydomain.com指向laravel的公共目录?

这是将laravel放在公共目录下的简单方法。*

首先,在laravel安装的根目录中,您必须将文件server.php复制或重命名为index.php,然后才能使用.htaccess,因此您只能访问索引。 php或css,js,fonts,images等资源..应该位于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放入公共目录之外没有其他选项时才应使用此解决方案)