初次了解Laravel的路由--开启Apache的rewrite模块

初次了解Laravel的路由

Laravel的安装推荐Composer安装比较简单,官方给的Homestead之类的虚拟机太麻烦,对初学者很不友好!

我的环境是Win10+phpstudy+php7.4.3+Apache2.4.39

由于是通过Composer安装,所以直接安装的最新Laravel8.33.1
Ps:win10 win+R进入laravel安装目录命令php artisan --version查看Laravel版本。查看Laravel版本
首先,在routes/wep.php文件中如图:
在这里插入图片描述
Route是一个类::是调用这个类里的静态方法
这里get方法表示接受一个get请求,post同理。
第一个参数'/'代表访问首页。来个简单的哈喽,我的!

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

然后在resources/views目录下新建article.blade.php
内容为

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

然后访问http://www.laravel.test/article
结果报错404 Not Fount

访问http://www.laravel.test/index.php/article
结果成功

原因是未开启Apacherewrite模块。

开启之后,重启Apache,发现还是不行。

查了一圈,我尝试有效的方法
在public目录下有个.htaccess文件打开为空白填入以下内容

<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>

退出保存重启Apache
http://www.laravel.test/article访问成功
Ps:查的有些说是要改Apachehttpd.conf文件中的AllowOverrideNone改为All,我没做任何修改,还是None

猜你喜欢

转载自blog.csdn.net/qq_43662579/article/details/115012623