Php nginx上未找到Laravel路由
当我尝试访问我的测试应用程序时,只有索引路由起作用: 如果我尝试访问另一条路线,例如: 我有404错误 我的nginx应用程序文件:Php nginx上未找到Laravel路由,php,laravel,nginx,routes,digital-ocean,Php,Laravel,Nginx,Routes,Digital Ocean,当我尝试访问我的测试应用程序时,只有索引路由起作用: 如果我尝试访问另一条路线,例如: 我有404错误 我的nginx应用程序文件: server { listen 80; server_name malte.italoborg.es; root /home/italo/www/malte.italoborg.es/public; charset utf-8; location = /favicon.ico { access_log off; lo
server {
listen 80;
server_name malte.italoborg.es;
root /home/italo/www/malte.italoborg.es/public;
charset utf-8;
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /home/log/nginx/malte.italoborg.es-error.log error;
error_page 404 /index.php;
sendfile off;
# Point index to the Laravel front controller.
index index.php;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
#deny all;
}
}
我在StackOverflow的另一个链接中尝试了此解决方案,但对我无效
我正在数字海洋中使用nginx
::更新::
My routes.php
<?php
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
Route::get('/',
['as' => 'site.welcome.index', 'uses' => 'Site\WelcomeController@index']
);
Route::group(['prefix' => 'admin'], function () {
// Login
Route::get('login',
['as' => 'admin.auth.login', 'uses' => 'Admin\Auth\AuthController@getLogin']
);
Route::post('login',
['as' => 'admin.auth.login', 'uses' => 'Admin\Auth\AuthController@postLogin']
);
Route::get('logout',
['as' => 'admin.auth.logout', 'uses' => 'Admin\Auth\AuthController@getLogout']
);
// Password
Route::get('password/email',
['as' => 'admin.password.email', 'uses' => 'Admin\Auth\PasswordController@getEmail']
);
Route::post('password/email',
['as' => 'admin.password.email', 'uses' => 'Admin\Auth\PasswordController@postEmail']
);
// Password reset
Route::get('password/reset/{token}',
['as' => 'admin.password.reset', 'uses' => 'Admin\Auth\PasswordController@getReset']
);
Route::post('password/reset',
['as' => 'admin.password.reset', 'uses' => 'Admin\Auth\PasswordController@postReset']
);
Route::group(['middleware' => 'auth'], function () {
// Home
Route::get('/', ['as' => 'admin.home.index', 'uses' => 'Admin\HomeController@index']);
// My Account
Route::get('profile',
['as' => 'admin.profile.edit', 'uses' => 'Admin\ProfileController@edit']
);
Route::put('profile',
['as' => 'admin.profile.update', 'uses' => 'Admin\ProfileController@update']
);
// Nail polish
Route::resource('polishes', 'Admin\NailPolishController');
// Brands
Route::resource('brands', 'Admin\BrandController');
// Types
Route::resource('types', 'Admin\TypeController');
});
});
请尝试更改此设置
location / {
try_files $uri $uri/ /index.php;
}
对此
location / {
try_files $uri $uri/ /index.php?$query_string;
}
并删除此行:
try_files $uri /index.php =404;
针对Laravel 5.1的修复:
$vi/etc/nginx/sites available/default
注释掉:
#try_files$uri$uri/=404代码>
添加:
try_files$uri$uri//index.php代码>用于流明和拉维这解决了我的问题:
我已将nginx上的文档根目录更改为我的项目根目录:
root /usr/you/laravelinstall/public;
你也可以发布你的路线代码吗?@JoelHinz,我用route.php更新了我的帖子。所有代码都在localhost中工作,就在我试图设置Digital Ocean server时,我遇到了一个特大错误。您解决了这个问题吗?几个小时来,我一直在努力使这项工作顺利进行。非常感谢:*