我想在我的本地apache web服务器上提供我的Laravel应用程序.但是,我遇到了问题.
为了测试我所创建的应用程序是否可以在apache服务器上运行,我创建了一个包含两个路由的新的非常简单的应用程序.
Route::group(['middleware' => 'web'],function() { Route::get('/',function() { return view('myview'); }); Route::get('/link',function() { return view('myotherview'); }); });
当我从浏览器进入我的公共目录时,它工作正常,它连接到/ route.但是当我给出另一条路径(/ link)的链接,并尝试输入该路由时,它给我404找不到错误.这是我在myview视图中提供的到达/链接路径的链接:
<a href="{{ url('/link') }}">Go</a>
当我显示页面的源时,上面的行呈现为localhost / mylaravelapp / public / link.
我在互联网上研究了这个问题,并且有一些关于启用apache mod_rewrite的建议.我也是通过键入a2enmod mod_rewrite来完成的.然而,这似乎不起作用,得到相同的结果.我该如何解决这个问题?
我的laravel版本是5.2,apache 2.4.7,我正在使用xubuntu 14.04.
这是适用于我的常用配置(与您相同的操作系统,Apache和Laravel版本).
编辑apache2配置文件(它应该在/etc/apache2/sites-available/000-default.conf下),添加:
原文链接:https://www.f2er.com/laravel/135343.html编辑apache2配置文件(它应该在/etc/apache2/sites-available/000-default.conf下),添加:
Alias /yourdir /var/www/html/yourdir/public/ <Directory "/var/www/html/yourdir/public"> AllowOverride All Order allow,deny allow from all </Directory>
其中“yourdir”显然是/ var / www / html路径下的文件夹.修改配置文件后重新启动服务器
sudo service apache2 restart
现在你的public / .htaccess应该是这样的:
RewriteEngine On RewriteBase /yourdir/ # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$/$1 [L,R=301] # Authorization Headers RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.PHP [L]