- 1. 概要
- 2. get
- 3. post
- 4. any
- 5. リダイレクト
- 6. 参考サイト
1. 概要
ルーティングの確認方法は、別ページに記載しています。
2. 設定
ルーティングの記述は。
ドキュメントルート/routes/
中に書いてあって。
今のところ(2021年3月18日)。
ドキュメントルート/routes/web.php
しかさわっていません。
「バージョン 8.33.1」のデフォルトでは、コメントをのぞけば、前半の。
<?php
use Illuminate\Support\Facades\Route;
の部分と後半の。
Route::get('/', function () {
return view('welcome');
});
の部分のみです。
3. post
なるほどな、とデフォルトのを真似て、全部「get」で書いておりました。
で、リンクチェックを自作の「Python」のプログラムでやっておるのですが・・・。
いきなり、ルートの。
requestLink = request.Request(URI, data='データ', headers='ヘッダ', method='POST')
html = urllib.request.urlopen(requestLink, timeout=10)
で。
HTTP Error 405: Method Not Allowed
てなエラーになっちゃいました。
これ「post」を送っているからだそうで。
Route::get('/', function () { return view('ビュー'); });
と同時に。
Route::post('/', function () { return view('ビュー'); });
も書かないとエラーになっちゃうようです。
4. any
しかし、2行ずつ書くのは面倒だなと思っていたら、下記の書き方があるようです。
Route::any('/', function () { return view('ビュー'); });
これだと、「get」「post」どちらも処理してくれるようです。
しかし、参考サイトに「基本使わないけど」って書いてあるのが気になりますけどね。
わたしは、逆に特定のサイトでは、「any」しかつかってません。
5. リダイレクト
多分、こゆことしている方、そこそこいらっしゃるんじゃないかと思うのですが、「404 not found」が発生したとき、特定のページへリダイレクトするという・・・。
他のエラーでも、リダイレクトしている方もいらっしゃるようです。
今まで。
/usr/local/etc/apache24/Includes/*.conf
に。
<VirtualHost *:80>
ServerName サーバ名
DocumentRoot /パス
ErrorDocument 404 /リダイレクト先
</VirtualHost>
てな書き方をするか、「.htaccess」でリダイレクト先を書くかすれば、うまくいっていたのですが、「Laravel」では、そうはいかないようです。
上記の書き方で解説しているサイトが、そこそこあるのですが、バージョン違いのためか、うまくいかない。
参考サイトの内容で、うまくいきました。
すなわち。
routes/web.php
に。
Route::fallback(function()
{
return redirect('転送先');
});
と書けば、思い通りになります。
ただし、今んとこ、転送先は、フルドメインで書く方法しか知りません。
6. 参考サイト
本ページは、下記のサイトを参考にさせていただきました。
「Laravel のルーティングチートシート」
「【入門】Laravel の Controller について」
「Laravel 存在しないページにアクセスされたとき404ページではなく特定のページにリダイレクトさせる方法」
|