Comprender el enrutamiento de Laravel por primera vez: abrir el módulo de reescritura de Apache

Entendiendo el enrutamiento de Laravel por primera vez

La instalación de Laravel recomienda que la instalación de Composer sea relativamente simple, ¡y las máquinas virtuales oficiales como Homestead son demasiado problemáticas y hostiles para los principiantes!

Mi entorno es Win10+phpstudy+php7.4.3+Apache2.4.39


Dado que se instala a través de Composer, el último Laravel8.33.1 Ps se instala directamente : win10 win+R ingresa al directorio de instalación de laravel y ordena php craft --version para ver la versión de Laravel. Comprobar la versión de Laravel
En primer lugar, routes/wep.phpcomo se muestra en el archivo:
inserte la descripción de la imagen aquí
Routees una clase ::que llama al método estático en esta clase.El método
aquí getsignifica aceptar una getsolicitud, postla misma razón.
El primer parámetro '/'representa el acceso a la página de inicio. vamos sencillo哈喽,我的!

Route::get('/', function () {
    
    
    return view('welcome');
});
Route::get('article',function (){
    
    
   return view('article');
});

Luego resources/viewscrea un nuevo directorio con article.blade.php
el contenido como

<?php
echo "哈喽,我的!";

Luego acceda http://www.laravel.test/article
al resultado e informe un error 404 Not Fount

El http://www.laravel.test/index.php/article
resultado del acceso fue exitoso

El motivo es un Apachemódulo sin abrir rewrite.

Después de encenderlo, reinícielo Apachey descubrí que todavía no funciona.

Después de buscar, probé un método efectivo.
Hay un archivo .htaccess en el directorio público. Ábralo en blanco y complete el siguiente contenido.

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options +FollowSymLinks
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

Salga , guarde y reinicie Apache para
http://www.laravel.test/articleacceder con éxito
Apachehttpd.confAllowOverrideNoneAllNone

Supongo que te gusta

Origin blog.csdn.net/qq_43662579/article/details/115012623
Recomendado
Clasificación