Error de Laravel: "Lo sentimos, no se pudo encontrar la página que est

Error de Laravel: "Lo sentimos, no se pudo encontrar la página que está buscando"

Necesito actualizar un sitio web de un colega para simplemente agregar una conexión LDAP.

Uso EasyPHP devserver 17.0 con php 7.1.3 y MySQL 5.7.17.

He leído muchos documentos, etc. para comenzar y recuperar el sitio en local tal como está funcionando actualmente.

Todo funcionaba, así que comencé a agregar un formulario de inicio de sesión, etc... pero cuando traté de probar un enlace desde el sitio web, me devolvió el error "Lo siento, no se pudo encontrar la página que está buscando". Así que comencé a buscar en foros, encontré algunos resultados sobre rutas, etc. y todo lo que probé no funcionó.

Entonces, decido usar la copia de seguridad del sitio web tal como estaba cuando la restauré en local (precisé el enlace a otra página y todo funcionaba). Compruebo el enlace y de nuevo, "Lo siento, no se pudo encontrar la página que está buscando". Decido probar otra herramienta de desarrollo y descargar XAMP, exactamente el mismo error. Probé con Wamp, Laragon siempre el mismo error.

En apache conf mod_rewrite está habilitado.

Mi versión de laravel framework es: 5.5.39

Así que mi carpeta se ve así:

Laravel versión 5.5.39

El contenido de las rutas> web.php:

Route::get('/', function () {
    return view('welcome');
})->name('welcome');

// Holidays
Route::get('/holidays/create', 'HolidayController@create')->name('holidays.create');
Route::post('/holidays', 'HolidayController@store')->name('holidays.store');
Route::get('/holidays/{holiday}/delete', 'HolidayController@destroy')->name('holidays.destroy');
Route::get('/holidays/{holiday}/edit', 'HolidayController@edit')->name('holidays.edit');
Route::post('/holidays/{holiday}', 'HolidayController@update')->name('holidays.update');

// Leave types
Route::get('/types/create', 'TypeController@create')->name('types.create');
Route::post('/types', 'TypeController@store')->name('types.store');
Route::get('/types/{type}/delete', 'TypeController@destroy')->name('types.destroy');
Route::get('/types/{type}/edit', 'TypeController@edit')->name('types.edit');
Route::post('/types/{type}', 'TypeController@update')->name('types.update');

// Users
Route::resource('users', 'UserController');
Route::get('/births', 'UserController@getAllBirths')->name('births');

// Leaves
Route::get('/calendar', 'LeaveController@index')->name('calendar');
Route::post('/leaves', 'LeaveController@store')->name('leaves.store');
Route::post('/leaves/{leave}', 'LeaveController@update')->name('leaves.update');
Route::get('/leaves/{leave}/delete', 'LeaveController@delete')->name('leaves.delete');
Route::get('/leaves', 'LeaveController@getAll')->name('leaves');

Route::get('/config', 'ConfigController@index')->name('config');

// Stats
Route::get('/statistics', 'StatsController@index')->name('stats.index');

Auth::routes();

Mi host virtual en Httpd.conf es:

<VirtualHost 127.0.0.1>
    DocumentRoot "C:/Users/sadm-m263733/Desktop/EasyPHP-Devserver-17/eds-www"
    ServerName 127.0.0.1
    <Directory "C:/Users/sadm-m263733/Desktop/EasyPHP-Devserver-17/eds-www">
        Options FollowSymLinks Indexes ExecCGI
        AllowOverride All
        Order deny,allow
        Allow from 127.0.0.1
        Deny from all
        Require all granted
    </Directory>
</VirtualHost>

No sé qué podría hacer, pero pregúntame si necesitas más información para ayudarme.

Si puede ayudar; Enlace de gitLab del sitio que estoy tratando de restaurar: https://gitlab.com/balsigergil/btplan

Más precisiones: Las rutas de autenticación se llaman dos veces, primero en HomeControler.php: clase HomeController extiende Controlador

{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('home');
    }
}

Y luego en el middleware RedirectIfAuthenticated.php :

use Illuminate\Support\Facades\Auth;

class RedirectIfAuthenticated
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            return redirect('/home');
        }

        return $next($request);
    }
}

¿Crees que debo eliminar esta parte del HomeController?:

public function __construct()
{
    $this->middleware('auth');
}

Y esta parte del middleware:

if (Auth::guard($guard)->check()) {
            return redirect('/home');
        }

Eliminé las rutas de autenticación en Routes/web.php

Mostrar la mejor respuesta

Pruebe php artisan route:list para ver si sus rutas de autenticación están configuradas correctamente. Prueba también con un borrado rápido de caché: php artian cache:clear

@SystemGlitch gracias por su respuesta, probé su comando route:list y devuelve todas mis rutas sin ningún error. ¿Significa que toda la sintaxis de mi ruta es correcta? El comando cach:clear tampoco resolvió mi problema (también eliminé el caché de mi navegador)

En la lista de rutas, verifique si el inicio de sesión está configurado correctamente y apunta al método de controlador correcto.

@SystemGlitch No obtuve autenticación en mi sitio web, por lo que la ruta de inicio de sesión nunca se usa. ¿Es posible que no usar la ruta de inicio de sesión sea la causa de mi problema?

No debe crear las rutas de autenticación entonces. (Elimine Auth::routes()) y verifique que sus controladores no usen el middleware auth, de lo contrario intentaría redirigir a la página de inicio de sesión.

@SystemGlitch La ruta se llama dos veces. Publicaré una respuesta para mostrarla mejor.

Como no está usando autenticación para su aplicación, elimine el middleware auth de su controlador y esto será bueno.

$this->middleware('auth'); //Remove this line

Eliminé la línea, luego php artisan cache:clear , borre la memoria caché de mi navegador y sigo teniendo el mismo error

¿Esta línea aparece en algún otro lugar?

En Rutas/api.php: Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); });

También puede eliminar esta línea, pero eso no solucionará el problema.

En app/Http/Controllers/Controller.php: use Illuminate\Foundation\Auth\Access\AuthorizesRequests;

Pero, si es realmente un problema de rutas, ¿por qué la primera vez que logré recuperar el sitio con todos los enlaces y ahora que lo intento de nuevo haciendo exactamente los mismos pasos que la primera vez ya no funciona?

¿Puede decirme qué URL está solicitando y la respuesta exacta que obtiene? ¿Es una redirección?

el enlace está en mi barra de navegación, tengo 3 enlaces a 3 páginas diferentes. El enlace se realiza mediante la etiqueta <a href"..."</a>. Pero he intentado escribir manualmente el enlace en la URL, por ejemplo: http://localhost:8080/siteBTPlan/public/calendar y no funciona

Su servidor virtual DocumentRoot debe ser siteBTPlan/public.

Sí, mi primera y única página que se muestra sin ningún error es http://localhost:8080/siteBTPlan/public . Pero, de hecho, no sé si es importante, pero el sitio web en realidad está en producción, pero solo en la intranet, tiene la URL principal: http://siteBTPlan y para ir a la página del calendario, por ejemplo, la URL es http://siteBTPlan/calendar

Es importante, el enrutador no puede funcionar correctamente de lo contrario.

Entonces, ¿el sitio web en producción sin el public en la URL no es bueno? ¿La URL del sitio web en local es correcta? (http://localhost:8080/siteBTPlan/public/calendar)

No, public no debería aparecer en la URL porque el DocumentRoot para el host virtual debería ser siteBTPlan/public. Verifique su configuración de Apache / Nginx. Su sitio en producción es bueno.

De acuerdo, ¿quizás solo estoy escribiendo la URL incorrecta para acceder a mi sitio web principal? Agregué mi configuración de virtualHost en httpd.conf En mi publicación, ¿podría verificarlo, por favor?

Cambie su VirtualHost DocumentRoot para que la raíz sea el directorio public.

DocumentRoot "C:/Users/sadm-m263733/Desktop/EasyPHP-Devserver-17/eds-www/siteBTPlan/public"

La raíz de Laravel no es la raíz de su carpeta Laravel. Debe configurar la raíz de su documento en la carpeta Laravel public.

DocumentRoot "<your-laravel-path>/public"

¡Gracias por su respuesta, pero @systemGlitch ya la respondió hace 10 días!