Я сделал некоторые изменения в routes.php
и rest по умолчанию. routes.php
выглядит следующим образом:
//Route::get('/', 'WelcomeController@index'); Route::get('/', 'HomeController@index'); Route::controllers([ 'auth' => 'Auth\AuthController', 'password' => 'Auth\PasswordController', ]);
Вывод маршрута php artisan: список
+--------+--------------------------------+-------------------------------------------------------+------+------------------------------------------------------------+------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+--------------------------------+-------------------------------------------------------+------+------------------------------------------------------------+------------+ | | GET|HEAD | / | | App\Http\Controllers\HomeController@index | auth | | | GET|HEAD | auth/register/{one?}/{two?}/{three?}/{four?}/{five?} | | App\Http\Controllers\Auth\AuthController@getRegister | guest | | | POST | auth/register/{one?}/{two?}/{three?}/{four?}/{five?} | | App\Http\Controllers\Auth\AuthController@postRegister | guest | | | GET|HEAD | auth/login/{one?}/{two?}/{three?}/{four?}/{five?} | | App\Http\Controllers\Auth\AuthController@getLogin | guest | | | POST | auth/login/{one?}/{two?}/{three?}/{four?}/{five?} | | App\Http\Controllers\Auth\AuthController@postLogin | guest | | | GET|HEAD | auth/logout/{one?}/{two?}/{three?}/{four?}/{five?} | | App\Http\Controllers\Auth\AuthController@getLogout | | | | GET|HEAD|POST|PUT|PATCH|DELETE | auth/{_missing} | | App\Http\Controllers\Auth\AuthController@missingMethod | guest | | | GET|HEAD | password/email/{one?}/{two?}/{three?}/{four?}/{five?} | | App\Http\Controllers\Auth\PasswordController@getEmail | guest | | | POST | password/email/{one?}/{two?}/{three?}/{four?}/{five?} | | App\Http\Controllers\Auth\PasswordController@postEmail | guest | | | GET|HEAD | password/reset/{one?}/{two?}/{three?}/{four?}/{five?} | | App\Http\Controllers\Auth\PasswordController@getReset | guest | | | POST | password/reset/{one?}/{two?}/{three?}/{four?}/{five?} | | App\Http\Controllers\Auth\PasswordController@postReset | guest | | | GET|HEAD|POST|PUT|PATCH|DELETE | password/{_missing} | | App\Http\Controllers\Auth\PasswordController@missingMethod | guest | +--------+--------------------------------+-------------------------------------------------------+------+------------------------------------------------------------+------------+
Когда я обращаюсь к сайту через http://laravel/
я получаю
Запрошенный URL / auth / login не найден на этом сервере.
но если я использую http://laravel/index.php/auth/login
он работает без каких-либо ошибок. Что не так с моей маршрутизацией?
Я использую WAMP для Windows 7 64-бит.
Вам нужно включить mode_rewrite для apache. Я решил эту проблему после этого блога
http://www.kingpabel.com/apache-mod_rewrite/
Route::controllers([ 'auth' => 'Auth\AuthController', 'password' => 'Auth\PasswordController', ]);
Дополнительная запятая в конце вашего массива может вызвать что-то?
У меня такая же проблема, но эта запятая – это то, что я сразу увидел
Нашел решение. Это была проблема с конфигурацией Apache. Повторная установка Apache решила проблему.
Это может быть пакет поставщика, который имеет свои собственные маршруты, которые конфликтуют с вашими.
Если вы обнаружите необъяснимые маршруты при запуске маршрута artisan route: они могут принадлежать к пакету поставщика, который вы недавно добавили. Для нас это был «acacha / admin-lte-template-laravel».
Следующий код был найден в "acacha / admin-lte-template-laravel / src / app / Providers / AdminLTETemplateServiceProvider.php"
private function registerRoutes() { Route::controller( 'auth', $this->getAppNamespace() . 'Http\Controllers\Auth\AuthController' , [ 'getLogin' => 'auth.login', 'getLogout' => 'auth.logout', 'getRegister' => 'auth.register' ]); Route::controller( 'password' , $this->getAppNamespace() . 'Http\Controllers\Auth\PasswordController', [ 'getReset' => 'auth.reset',] ); Route::get('/home', ['as' => 'home','middleware' => 'auth', function () { return view('home'); }]); }
Полагаю, именно поэтому появляется «{one?} / {Two?} / {Three?} / {Four?} /" (Я думаю, что этот шаблон маршрута добавляется, когда контроллер Route :: используется поставщиком).
Без apache, вы можете проверить его с помощью php artisan serve
. Прежде чем вам нужно будет внести некоторые изменения в .env, измените APP_ENV
на локальный. затем просмотрите auth \ login, проверьте ошибку. В моем случае ошибка: PDO не найден. Надеюсь, это поможет.
В моем проекте мне пришлось добавить следующую команду в конфигурацию Apache:
<Directory /var/www/html/checkin> AllowOverride All </Directory>
Apache mod_rewrite
//enable mod rewrite a2enmod rewrite //restart apache service apache2 restart