我一直在寻找答案,找不到任何有我确切问题的人,并希望别人有这个问题。
我使用vhost在本地安装了Laravel,它安装在根目录下。我现在必须将此安装移至http://domain.com/~username
的其他服务器,我的所有文件都在/~username/
,我正在使用.htaccess
从public
文件夹访问http://domain.com/~username
{1}}。
我还在app.php
中正确设置了路径和我的网站网址。
除了我的路线,一切几乎都有效。
如果我导航到http://domain.com/~username
,我会收到NotFoundHttpException
这是我的主页路线:
Route::get('/', function() { ... });
如果我将其更改为
Route::get('/~username', function() { ... });
我几乎所有事情都有其他问题,因为 Laravel认为它安装在根文件夹中,而不是/~username/
。
我的问题是如何让Laravel看到它已安装到http://domain.com/~username/
而不是http://domain.com/
?
编辑:添加.htaccess文件
我在root(/ ~username)
中的当前.htaccess文件<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /~username/
RewriteCond %{THE_REQUEST} ^GET\ /public/ [NC]
RewriteRule ^public/(.*)$ $1 [L,R=301,NE]
RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
</IfModule>
和/ public
中的.htaccess文件<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /~username/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
</IfModule>
答案 0 :(得分:1)
我可能没有正确理解你的问题,但这是我的解决方案。
转到/bootstrap/paths.php并更改为:
return array(
'app' => __DIR__.'~username/../app',
'public' => __DIR__.'~username/../public',
'base' => __DIR__.'~username/..',
'storage' => __DIR__.'~username/../app/storage',
)
我不确定这是否有效。我还没试过。