Lararvel 4路由过去索引页面不适用于webfactions

smu*_*urf 1 php apache .htaccess laravel-4

我正在尝试使用WebFactions来托管我使用Laravel 4构建的网站.我已经成功地遵循了这样的教程:http://euantor.com/using-laravel-with-webfaction/

索引页面加载完美,但是我链接到的任何其他页面似乎都有问题,给出500错误(表明routes.php不能以某种方式工作).

看一看,似乎我需要更改apache服务器的httpd.conf,我无法访问webfactions.我尝试过使用laravel提供的两个.htaccess文件(它附带的默认文件,以及这个文件):

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Run Code Online (Sandbox Code Playgroud)

但这似乎也没有解决问题.有没有人知道如何让Laravel 4在webfactions上工作,以便通过索引页面的其他路由有效?

Sim*_* A. 5

首先,你就不会需要改变的httpd.conf的虚拟主机,使Laravel正常工作.

根据您提供的有限信息量,无法分辨您的配置有什么问题.但是,我可以从Webfaction(而不是Webfactions)的Web站点为您提供工作示例配置.

目录结构

/home/myuser
|--> webapps
|  --> mysite  (This is your public web directory)
|--> laravelapps
   --> mysite  (Laravel installation, incl. routes.php)
     --> app
       --> models
       --> views
       --> etc.
Run Code Online (Sandbox Code Playgroud)

为了安全起见,您应该为Web内容和Laravel文件分别设置文件夹.换句话说,不要将Laravel文件和配置放在公共Web目录下.

网站目录

将需要通过HTTP协议获取的任何文件放入此目录:webapps/mysite.例如,创建子目录css,js,images等.

还要确保在web目录的根目录中有两个Laravel文件:

  • 的.htaccess
  • 的index.php

.htaccess.php在您的网站目录中

<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

这样做是将所有Laravel请求重定向到index.php.有关这些行的更详细说明,请查看有关非常相似的.htaccess的答案:这是WordPress中的.htaccess代码.有人能解释它是如何工作的吗?

index.php在你的web目录下

此文件中有两个重要条目.第一个是注册自动加载器部分.确保你有这样的东西(也可以是相对路径):

require '/home/myuser/laravelapps/mysite/bootstrap/autoload.php';

第二个重要的条目是在Turn On The Lights部分.确保它说的是这样的东西(只要你做对了就可以再次成为相对路径):

$app = require_once '/home/myuser/laravelapps/mysite/bootstrap/start.php';

Laravelapps的公共道路

还有一件事需要改变,它位于公共路径部分的/home/myuser/laravelapps/mysite/bootstrap/paths.php中.确保它指向您的web文件夹,例如:

'public' => '/home/myuser/webapps/mysite',

其他的东西

上面的设置应该可以解决问题.但是,根据您提供的(缺少)信息,无法排除其他Laravel配置文件(位于/ home/myuser/laravelapps/mysite/app/config或文件权限)的其他问题.请先试试上面的内容,让我们知道它是怎么回事?