我需要发布我用laravel 4编写的web应用程序,我已经在互联网上学习了很多教程,但我不能让它正常工作。
我在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出现在我的路由中。
我想我应该在vols文件夹中的.htaccess上工作,但我从来没有研究过它是如何工作的,所以我只是从互联网上复制了一些随机的代码片段,用vols代替了public。
目前它看起来是这样的
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^vols
RewriteRule ^(.*)$ vols/$1 [L]
</IfModule>一些解决方案建议创建vhost,从技术上讲我可以这样做,但我不知道怎么做。
你能帮帮我吗?
发布于 2015-02-06 19:26:51
您应该将以下.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>https://stackoverflow.com/questions/28364525
复制相似问题