我知道这是一个非常受欢迎的问题,但我无法为Laravel 5找到一个可行的解决方案.我一直在尝试从Codeigniter迁移很长一段时间,但这个错综复杂的安装过程一直让我失望.
我不想运行VM,这在项目之间切换时似乎很尴尬.
我不想将我的文档根目录设置为公共文件夹,这在项目之间切换时也很尴尬.
我试过了.htaccess mod_rewrite方法
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
这只是在compiled.php第7610行中给了我一个Laravel NotFoundHttpException.
当我不久前尝试L4时,我使用了将公用文件夹的内容移动到根目录的方法.L5的结构完全不同,按照相同的步骤完全打破了Laravel(服务器只返回一个空白页面).
在开发环境中是否有一种很好的方法可以删除"公共":
谢谢
**我正在使用MAMP和PHP 5.6.2
我正在尝试在我的服务器上的此目录中安装laravel 5应用程序:
public_html/myapp/
我希望通过以下URL访问它:
http://www.example.com/myapp/
我创建了这个.htaccess规则并将其放在myapp文件夹中以重定向请求:
RewriteEngine on
RewriteRule ^(.*)$ public/$1 [L]
Run Code Online (Sandbox Code Playgroud)
在我尝试访问应用程序的浏览器中,我获得了重定向的URL,例如:
http://www.example.com/myapp/public/index.phphttp://www.example.com/myapp/public/index.php/dashboard而不是漂亮的美丽网址,如:
http://www.example.com/myapp/http://www.example.com/myapp/dashboard我需要在.htaccess文件中更改以获取正确的URL吗?
更新:如果需要,可以将laravel应用程序移动到其他位置,只要可以实现上面所需的URL结构(可以通过example.com/myapp/访问该应用程序).
更新:当我尝试访问时,example.com/myapp/dashboard我在浏览器中收到以下错误消息:NotFoundHttpException in compiled.php line 7793:堆栈跟踪以以下内容开头:
in compiled.php line 7793
at RouteCollection->match(object(Request)) in compiled.php line 7066
at Router->findRoute(object(Request)) in compiled.php line 7038
at Router->dispatchToRoute(object(Request)) in compiled.php line 7030
at Router->dispatch(object(Request)) in compiled.php line 1989
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
Run Code Online (Sandbox Code Playgroud)
更新:以下.htaccess文件位于公用文件夹中:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 …Run Code Online (Sandbox Code Playgroud) 我在自己的运行Debian和Apache2的服务器上运行最新版本的laravel。
laravel的内容位于/var/www我的域名指向的位置,但是所有功能都通过public目录发生,因此我必须转到http://mydomain.com/public才能访问任何内容。
我想更改它,以便我只需要访问http://mydomain.com。这可能吗?
我怎样才能改变这个?我是否必须将所有内容上移到另一个级别的父级/var?
到目前为止,我还没有在网上找到任何东西说这是可能的,或者说这是一个好主意。