Laravelのルーティングを初めて理解する
LaravelのインストールはComposerのインストールが比較的簡単であることを推奨しており、公式から与えられるHomesteadなどの仮想マシンは面倒で初心者には不親切!
私の環境はWin10+phpstudy+php7.4.3+Apache2.4.39です。
Composer を介してインストールされるため、最新の Laravel8.33.1 Psが直接インストールされます: win10 win+R は、laravel のインストール ディレクトリに入り、Laravel のバージョンを表示するコマンド phpArtisan --version を実行します。
まず、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
結果は成功しました
理由は未開封のApache
モジュールですrewrite
。
電源を入れた後、再起動しましたが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>
正常に
http://www.laravel.test/article
アクセスするには、
終了して保存し、Apacheを再起動します。Apache
httpd.conf
AllowOverride
None
All
None