我需要发布用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
文件夹中工作,但我从来没有研究它是如何工作的,所以我只是从互联网上复制一些随机片段替换public
与vols
。
目前看起来像这样
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^vols
RewriteRule ^(.*)$ vols/$1 [L]
</IfModule>
有些解决方案建议创建vhost,技术上我可以做到,但我不知道如何。
你能帮我吗?
答案 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>