laravel发布网站问题

时间:2015-02-06 11:14:56

标签: php .htaccess laravel routes

我需要发布用laravel 4编写的网络应用程序, 我在互联网上遵循了许多教程,但我无法使其正常工作。

我正在使用centos 6.6的专用服务器,其中存在另一个网站,因此laravel应用程序应放在名为vols

的子文件夹中

这是当前的文件夹结构:

/
  var/
    www/
       laravel/
          app/
          bootstrap/
          vendor/
          ...
       html/
          vols/
          other files of my website

我已将bootstrap/paths.php内的路径更改为

'app' => __DIR__.'/../../laravel/app'
'public' => __DIR__.'/../../html/vols'
'base' => __DIR__.'/../../laravel'
'storage' => __DIR__.'/../../laravel/app/storage'

以及vols/index.php内的路径

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

我的第一个控制器名为volunteers,因此如果访问http://mydomain/vols,我应该重定向到http://mydomain/vols/volunteers 相反,我看到此错误消息:The requested URL /vols/volunteers was not found on this server.

如果我尝试连接到http://mydomain/vols/index.php/volunteers一切正常,但我不想在我的路线中使用index.php。

我想我应该在.htaccess vols文件夹中工作,但我从来没有研究它是如何工作的,所以我只是从互联网上复制一些随机片段替换publicvols

目前看起来像这样

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteCond %{REQUEST_URI} !^vols
   RewriteRule ^(.*)$ vols/$1 [L]
</IfModule>

有些解决方案建议创建vhost,技术上我可以做到,但我不知道如何。

你能帮我吗?

1 个答案:

答案 0 :(得分:0)

您应该将以下.htaccess放在您的vols文件夹中 -

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On
RewriteBase /vols/

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>