{"id":1561,"date":"2020-03-12T11:20:28","date_gmt":"2020-03-12T02:20:28","guid":{"rendered":"https:\/\/qol-kk.com\/wp2\/?p=1561"},"modified":"2020-03-12T11:20:28","modified_gmt":"2020-03-12T02:20:28","slug":"post-1561","status":"publish","type":"post","link":"https:\/\/qol-kk.com\/wp2\/blog\/2020\/03\/12\/post-1561\/","title":{"rendered":"Laravel\uff1a\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u3092\u6483\u9000\u3059\u308bLOG\uff06Redirect\u306e\u4ed5\u7d44\u307f\u3092\u4f5c\u3063\u3066\u307f\u305f"},"content":{"rendered":"<h2>\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u3092\u6483\u9000\u3059\u308bLOG\uff06Redirect\u306e\u4ed5\u7d44\u307f<\/h2>\n<p>\u30b7\u30b9\u30c6\u30e0\u3092\u7d44\u3093\u3067\u3044\u308b\u3068\u30de\u30b8\u3067\u30e0\u30ab\u3064\u3044\u3066\u304f\u308b\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u3002<br \/>\n\u306a\u305c\u3053\u3046\u3082\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u304c\u591a\u3044\u306e\u304b\u30db\u30f3\u30c8\u8179\u7acb\u305f\u3057\u304f\u611f\u3058\u3066\u3044\u307e\u3059\u3002<br \/>\n\u3068\u8a00\u3046\u4e8b\u3067\u3001\u4ee5\u524d\u306e\u8a18\u4e8b\u3067\u653b\u6483\u3092\u53d7\u3051\u308bURL\u3092\u66f8\u3044\u305f\u308aLog\u306b\u6b8b\u3063\u305fIP\u304b\u3089\u5730\u57df\u8abf\u3079\u3066\u307f\u305f\u308a\u3057\u307e\u3057\u305f\u304c\u4eca\u56de\u306f\u6483\u9000\u504f\u3067\u3059\u3002<\/p>\n<h3>\u307e\u305a\u306f\u4ed5\u7d44\u307f\u3092\u8003\u3048\u308b<\/h3>\n<div class=\"paperBox\">\n<ol>\n<li>\u30a2\u30af\u30bb\u30b9log\u3067IP\u3068\u30a2\u30af\u30bb\u30b9URL\u306e\u8a18\u9332\u3092\u3059\u308b<\/li>\n<li>\u653b\u6483\u5bfe\u8c61\u3068\u306a\u3063\u3066\u3044\u308b\u5b58\u5728\u3057\u306a\u3044URL\u3092\u30d6\u30e9\u30c3\u30afURL\u3068\u3057\u3066\u7ba1\u7406\u3059\u308b<\/li>\n<li>\u30d6\u30e9\u30c3\u30afURL\u306b\u5bfe\u3057\u3066\u30a2\u30af\u30bb\u30b9\u3057\u3066\u304d\u305fIP\u3092\u30d6\u30e9\u30c3\u30afIP\u3068\u3057\u3066\u7ba1\u7406\u3059\u308b<\/li>\n<li>\u30d6\u30e9\u30c3\u30afIP\u3067\u3082\u3001\u30d6\u30e9\u30c3\u30afURL\u30a2\u30af\u30bb\u30b95\u56de\u307e\u3067\u306f\u8a31\u3057\u3066\u3084\u308b\uff08\u51fa\u6765\u5fc3\u7684\u306a\uff1f\u8a31\u5bb9\u7bc4\u56f2\uff09<\/li>\n<li>\u30d6\u30e9\u30c3\u30afIP\u304c\u30a2\u30af\u30bb\u30b9\u3057\u305fURL\u306f\u30d6\u30e9\u30c3\u30afURL\u306b\u767b\u9332\u3059\u308b<\/li>\n<li>\u8a31\u5bb9\u7bc4\u56f2\u3092\u8d85\u3048\u305f\u30d6\u30e9\u30c3\u30afIP\u306f\u5225\u306e\u5834\u6240\u306b\u52dd\u624b\u306b\u98db\u3093\u3067\u3082\u3089\u3046<\/li>\n<\/ol>\n<\/div>\n<p>\u306f\u3044\u3001\u3053\u3093\u306a\u611f\u3058\u3067\u884c\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<h3>\u5fc5\u8981\u3068\u306a\u308b\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u308b<\/h3>\n<p>\u6b32\u3057\u3044\u30c6\u30fc\u30d6\u30eb\u306f3\u3064\u3067\u3059\u3002<\/p>\n<div class=\"borderBox\">\n<ol>\n<li>\u57fa\u672c\u7684\u306a\u30a2\u30af\u30bb\u30b9\u30ed\u30b0(\u30a2\u30af\u30b7\u30e7\u30f3\u30ed\u30b0)\u3000\u21d2 table\u540d\uff1aactlogs<\/li>\n<li>\u30d6\u30e9\u30c3\u30afURL\u30ea\u30b9\u30c8\u3000\u21d2 table\u540d\uff1ablackurllists<\/li>\n<li>\u30d6\u30e9\u30c3\u30afIP\u30ea\u30b9\u30c8\u3000\u21d2 table\u540d\uff1ablackiplists<\/li>\n<\/ol>\n<\/div>\n<p>Migration\u3068Model\u3001Controller\u306e\u7bb1\u3092\u4f5c\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true\">#\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u4f5c\u6210\r\nphp artisan make:migration create_actlogs_table\r\nphp artisan make:migration create_blackurllists_table\r\nphp artisan make:migration create_blackiplists_table\r\n\r\n#\u30e2\u30c7\u30eb\u4f5c\u6210\r\nphp artisan make:model Actlog\r\nphp artisan make:model Blackurllist\r\nphp artisan make:model Blackiplist\r\n\r\n#\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u4f5c\u6210\r\nphp artisan make:controller ActlogController --resource\r\nphp artisan make:controller BlackurllistgController --resource\r\nphp artisan make:controller BlackiplistController --resource<\/pre>\n<p>\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u30d5\u30a1\u30a4\u30eb\u3092\u7de8\u96c6\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true\">#actlog\u306eMigration\r\n&lt;?php\r\n\r\nuse Illuminate\\Support\\Facades\\Schema;\r\nuse Illuminate\\Database\\Schema\\Blueprint;\r\nuse Illuminate\\Database\\Migrations\\Migration;\r\n\r\nclass CreateActlogsTable extends Migration\r\n{\r\n    public function up()\r\n    {\r\n        Schema::create('actlogs', function (Blueprint $table) {\r\n            $table-&gt;increments('id');\r\n            $table-&gt;integer('user_id')-&gt;unsigned()-&gt;nullable()-&gt;comment('\u4f5c\u696d\u8005ID');\r\n            $table-&gt;string('route')-&gt;nullable();\r\n            $table-&gt;string('url')-&gt;nullable();\r\n            $table-&gt;string('method')-&gt;nullable();\r\n            $table-&gt;integer('status')-&gt;unsigned()-&gt;nullable();\r\n            $table-&gt;text('message')-&gt;nullable();\r\n            $table-&gt;string('remote_addr')-&gt;nullable();\r\n            $table-&gt;string('user_agent')-&gt;nullable();\r\n            $table-&gt;timestamps();\r\n\r\n            $table-&gt;index(['created_at']);\r\n            $table-&gt;index(['user_id']);\r\n        });\r\n    }\r\n\r\n    public function down()\r\n    {\r\n        Schema::dropIfExists('actlogs');\r\n    }\r\n}\r\n<\/pre>\n<pre class=\"lang:default decode:true \">#blackurllist\u306eMigration\r\n&lt;?php\r\n\r\nuse Illuminate\\Support\\Facades\\Schema;\r\nuse Illuminate\\Database\\Schema\\Blueprint;\r\nuse Illuminate\\Database\\Migrations\\Migration;\r\n\r\nclass CreateBlackurllistsTable extends Migration\r\n{\r\n    public function up()\r\n    {\r\n        Schema::create('blackaurllists', function (Blueprint $table) {\r\n            $table-&gt;increments('id');\r\n            $table-&gt;string('accessurl',255)-&gt;comment('\u8981\u30c1\u30a7\u30c3\u30af\u30a2\u30af\u30bb\u30b9');\r\n            $table-&gt;timestamps();\r\n        });\r\n    }\r\n    public function down()\r\n    {\r\n        Schema::dropIfExists('blackaccesslists');\r\n    }\r\n}\r\n<\/pre>\n<pre class=\"lang:default decode:true\">#blackiplist\u306eMigration\r\n&lt;?php\r\n\r\nuse Illuminate\\Support\\Facades\\Schema;\r\nuse Illuminate\\Database\\Schema\\Blueprint;\r\nuse Illuminate\\Database\\Migrations\\Migration;\r\n\r\nclass CreateBlackiplistsTable extends Migration\r\n{\r\n    public function up()\r\n    {\r\n        Schema::create('blackiplists', function (Blueprint $table) {\r\n            $table-&gt;increments('id');\r\n            $table-&gt;string('blackip',20)-&gt;comment('\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u306e\u3042\u3063\u305fIP');\r\n            $table-&gt;timestamps();\r\n        });\r\n    }\r\n    public function down()\r\n    {\r\n        Schema::dropIfExists('blackiplists');\r\n    }\r\n}<\/pre>\n<p>\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true \">php artisan migrate<\/pre>\n<p>\u3053\u308c\u3067\u30c6\u30fc\u30d6\u30eb\u304c\u51fa\u6765\u307e\u3057\u305f\u3002<\/p>\n<h3>Model\u3092\u4fee\u6b63\u3059\u308b<\/h3>\n<p>\u25a0\u30e2\u30c7\u30eb\uff1aActlog<\/p>\n<pre class=\"lang:default decode:true \">&lt;?php\r\n\r\nnamespace App\\;\r\n\r\nuse Illuminate\\Database\\Eloquent\\Model;\r\n\r\nclass Actlog extends Model\r\n{\r\n    protected $guarded = ['*'];\r\n    protected $casts = ['meta' =&gt; 'json'];\r\n    const UPDATED_AT = null;\r\n\r\n    public function __construct(array $attributes = []) {\r\n        parent::__construct($attributes);\r\n        $connection = env('DB_LOG_CONNECTION', env('DB_CONNECTION', 'mysql'));\r\n    }\r\n\r\n    protected $fillable = [\r\n        'user_id',\r\n        'route',\r\n        'url',\r\n        'method',\r\n        'status',\r\n        'message',\r\n        'remote_addr',\r\n        'user_agent',\r\n    ];\r\n\r\n    protected $hidden = [\r\n    ];\r\n}<\/pre>\n<p>\u30c6\u30fc\u30d6\u30eb\uff1aactlogs\u306b\u306fjson\u304c\u305d\u306e\u307e\u307e\u5165\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<br \/>\nprotected $casts = ['meta' =&gt; 'json']; \u306f\u305d\u306e\u70ba\u306e\u8a2d\u5b9a\u3067\u3059\u3002<\/p>\n<p>Blackurllist\u3068Blackiplist \u306fartisan\u3067\u4f5c\u3063\u305f\u3082\u306e\u305d\u306e\u307e\u307e\u3067OK\u3002<\/p>\n<h3>Controller\u306e\u4fee\u6b63<\/h3>\n<p>View\u3078\u3064\u306a\u3052\u308b\u8a2d\u5b9a\u3060\u3051\u884c\u3063\u3066\u5f8c\u306f\u304a\u597d\u307f\u3067OK\u3002<\/p>\n<h3>Log\u8a18\u8f09\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u3092\u4f5c\u6210<\/h3>\n<pre class=\"lang:default decode:true \">php artisan make:middleware ActlogMiddleware<\/pre>\n<p>\u4f5c\u6210\u3057\u305f\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u3092kernel\u306b\u767b\u9332\u3057\u307e\u3059\u3002<\/p>\n<p>\u5834\u6240\uff1aProject &gt;&gt; app &gt;&gt; Http &gt;&gt; Middleware &gt;&gt; Kernel.php<\/p>\n<pre class=\"lang:default decode:true\">&lt;?php\r\n\r\nnamespace App\\Http;\r\n\r\nuse Illuminate\\Foundation\\Http\\Kernel as HttpKernel;\r\n\r\nclass Kernel extends HttpKernel\r\n{\r\n    protected $middleware = [\r\n        .\r\n        .\r\n        .\r\n        \\App\\Http\\Middleware\\ActlogMiddleware::class,\r\n    ];\r\n        .\r\n        .\r\n        .\r\n}<\/pre>\n<p>\u3055\u3041\u3001\u3053\u308c\u3067\u3057\u305f\u6e96\u5099\u306f\u6574\u3044\u307e\u3057\u305f\u3002<br \/>\n\u3044\u3088\u3044\u3088\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u7de0\u3081\u51fa\u3057\u30b7\u30b9\u30c6\u30e0\u306e\u672c\u4e38\u300e\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\uff1aActlog\u300f\u306e\u9020\u4f5c\u3067\u3059\u3002<\/p>\n<h3>ActlogMiddleware.php\u3092\u4f5c\u308b<\/h3>\n<p>\u3053\u3093\u306a\u611f\u3058\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n<pre class=\"lang:default decode:true\">&lt;?php\r\n\r\nnamespace App\\Http\\Middleware;\r\n\r\nuse Closure;\r\nuse App\\Models\\Actlog;\r\nuse Route;\r\nuse App\\Models\\Blackaccesslist;\r\nuse App\\Models\\Blackiplist;\r\nuse Carbon;\r\n\r\nclass ActlogMiddleware\r\n{\r\n    public function handle($request, Closure $next)\r\n    {\r\n        $response = $next($request);\r\n        $this-&gt;actlog($request, $response-&gt;status());\r\n        return $response;\r\n    }\r\n\r\n    public function actlog($request, $status)\r\n    {\r\n        $user = $request -&gt; user();\r\n        $data = [\r\n            'user_id' =&gt; $user ? $user-&gt;id : null,\r\n            'route' =&gt; Route::currentRouteName(),\r\n            'url' =&gt; $request -&gt; path(),\r\n            'method' =&gt; $request -&gt; method(),\r\n            'status' =&gt; $status,\r\n            'message' =&gt; count($request-&gt;toArray()) != 0 ? json_encode($request-&gt;toArray()) : null,\r\n            'remote_addr' =&gt; $request -&gt; ip(),\r\n            'user_agent' =&gt; $request -&gt; userAgent(),\r\n        ];\r\n        \r\n        #\u30d6\u30e9\u30c3\u30afIP\u306b\u767b\u9332\u304c\u3042\u308b\u304b\u78ba\u8a8d \r\n        $BlackIp = Blackiplist::where('blackip',$data['remote_addr'])-&gt;first();\r\n        #\u30a2\u30af\u30bb\u30b9\u30c1\u30a7\u30c3\u30af\r\n        $BlackAccess = Blackurllist::where('accessurl',$data['url'])-&gt;where('onoff',0)-&gt;first();\r\n        #\u30ed\u30b0\u30a4\u30f3\u5c65\u6b74\u304c\u3042\u308b\u304b\u78ba\u8a8d\r\n        $Actlogs = Actlog::where('remote_addr',$data['remote_addr'])-&gt;whereNotNull('user_id')-&gt;first();\r\n        \r\n        #\u30a2\u30af\u30bb\u30b9\u56de\u6570\u3092\u53d6\u51fa\u3059\r\n        $visitcount = 0;\r\n        if(!empty($BlackIp)){$visitcount = $BlackIp-&gt;count;}\r\n        switch ($visitcount){\r\n            case 0:\r\n                #\u30d6\u30e9\u30c3\u30afIP\u5024\u306a\u3057\r\n                $vol = self::checkBlackAccess($data,$Actlogs,$BlackAccess);\r\n                break;\r\n            case 1:\r\n            case 2:\r\n            case 3:\r\n            case 4:\r\n            case 5:\r\n                #\u30d6\u30e9\u30c3\u30afIP\u5024\u3042\u308a\u898f\u5b9a\u6570\u4ee5\u4e0b\r\n                $vol = self::BlackCancelerPath($data,$Actlogs,$BlackIp,$BlackAccess);\r\n                break;\r\n            default :\r\n                #\u30d6\u30e9\u30c3\u30afIP\u5024\u3042\u308a\u65e2\u5b9a\u6570\u4ee5\u4e0a\r\n                $vol = self::BlackCancelerNG($data,$Actlogs,$BlackIp,$BlackAccess);\r\n                break;\r\n        }\r\n        switch($vol){\r\n            case 0:\r\n            case 1:\r\n                #\u901a\u5e38\u51e6\u7406\r\n                Actlog::create($data);\r\n                self::ErrorPageSeparater($status);\r\n                break;\r\n            default :\r\n                $input = array('https:\/\/google.co.jp','https:\/\/www.rakuten.ne.jp','https:\/\/amazon.cn');\r\n                #\u81ea\u52d5\u9000\u5834\u203b\u52dd\u624b\u306b\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\r\n                return redirect(array_rand($input,1));\r\n                break;\r\n        }\r\n    }\r\n    \r\n    \/*\r\n     * \u25a0\u30d6\u30e9\u30c3\u30afIP\u5024\u306a\u3057\r\n     * 1. $Actlog\u306b\u5024\u304c\u3042\u308b\u6642\u4f55\u3082\u3057\u306a\u3044\r\n     * 2. $Actlog\u306b\u5024\u304c\u7121\u3044\u6642\r\n     * \u3000\u30003.\u4e0d\u6b63URL\u3078\u306e\u30a2\u30af\u30bb\u30b9\u304b\u78ba\u8a8d\r\n     * \u3000\u30004.\u4e0d\u6b63URL\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306e\u6642\r\n     * \u3000\u3000\u30005.\u30d6\u30e9\u30c3\u30afIP\u306b\u8a18\u8f09\r\n     * \u3000\u30006.\u4e0d\u6b63URL\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3067\u306f\u306a\u3044\u6642\r\n     * \u3000\u3000\u30007.\u4f55\u3082\u3057\u306a\u3044\r\n     *\/\r\n    public function checkBlackAccess($data,$Actlogs,$BlackAccess)\r\n    {\r\n        $value = 0;\r\n        if(empty($Actlogs)){\/\/\u6b63\u5f0f\u30ed\u30b0\u30a4\u30f3\u5c65\u6b74\u7121\u3057\r\n            if(!empty($BlackAccess)){\/\/\u4e0d\u6b63URL\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3042\u308a\r\n                $item = new Blackiplist;\r\n                $item-&gt;blackip = $data['remote_addr'];\r\n                $item-&gt;count = 1;\r\n                $item-&gt;onoff = 0;\/\/\u975e\u8a31\u53ef\u3067\u767b\u9332\r\n                $item-&gt;save();\r\n                \r\n                $value = 1;\r\n            }\r\n        }\r\n        return $value;\r\n    }\r\n    \r\n    \/*\r\n     * \u25a0\u30d6\u30e9\u30c3\u30afIP\u5024\u3042\u308a\u65e2\u5b9a\u6570\u4ee5\u4e0a\r\n     * 1. $Actlog\u306b\u5024\u304c\u3042\u308b\u6642\u4f55\u3082\u3057\u306a\u3044\r\n     * 2. $Actlog\u306b\u5024\u304c\u7121\u3044\u6642\r\n     * \u3000\u30003.\u4e0d\u6b63URL\u3078\u306e\u30a2\u30af\u30bb\u30b9\u304b\u78ba\u8a8d\r\n     * \u3000\u30004.\u4e0d\u6b63URL\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306e\u6642\r\n     * \u3000\u3000\u30005.\u30d6\u30e9\u30c3\u30afIP\u306e\u5024\u3092\u52a0\u7b97\r\n     * \u3000\u3000\u30006.\u4e0d\u6b63URL\u3092\u52a0\u7b97\r\n     * \u3000\u30007.\u4e0d\u6b63URL\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3067\u306f\u306a\u3044\u6642\r\n     * \u3000\u3000\u30007.\u4e0d\u6b63URL\u306b\u30a2\u30af\u30bb\u30b9URL\u3092\u8a18\u8f09\u203b\u4f46\u3057onoff=1\u3067\u767b\u9332\u3059\u308b\r\n     *\/\r\n    public function BlackCancelerNG($data,$Actlogs,$BlackIp,$BlackAccess)\r\n    {\r\n        $value = 0;\r\n        if(empty($Actlogs)){\/\/\u6b63\u898f\u30ed\u30b0\u30a4\u30f3\u5c65\u6b74\u306a\u3057\r\n            if(!empty($BlackAccess)){\/\/\u4e0d\u6b63URL\u3078\u306e\u30a2\u30af\u30bb\u30b9\r\n                #IP\u6700\u7d42\u30a2\u30af\u30bb\u30b9\u3092\u66f4\u65b0\r\n                $item = Blackiplist::where('id',$BlackIp-&gt;id);\/\/\u30d6\u30e9\u30c3\u30afIP\u30ea\u30b9\u30c8\u3092\u30b5\u30fc\u30c1\r\n                $item-&gt;update(['count' =&gt; ($BlackIp-&gt;count)+1]);\r\n                \r\n                #URL\u6700\u7d42\u30a2\u30af\u30bb\u30b9\u3092\u66f4\u65b0\r\n                $item = Blackurllist::where('id',$BlackAccess-&gt;id);\r\n                $item-&gt;update(['count'=&gt; ($BlackAccess-&gt;count)+1]);\r\n                \r\n                $value = 2;\r\n            }else{\r\n                #\u5ff5\u306e\u305f\u3081\u8a31\u53efURL\u306e\u8a18\u8f09\u3082\u542b\u3081\u30c1\u30a7\u30c3\u30af \u203b'\/'\u5bfe\u7b56\r\n                $BlackAccess2 = Blackurllist::where('accessurl',$data['url'])-&gt;first();\r\n                if(!empty($BlackAccess2)){\r\n                    #URL\u6700\u7d42\u30a2\u30af\u30bb\u30b9\u3092\u66f4\u65b0\r\n                    $item = Blackurllist::where('id',$BlackAccess2-&gt;id);\r\n                    $item-&gt;update(['count'=&gt; ($BlackAccess2-&gt;count)+1]);\r\n                }else{\r\n                    #URL\u30a2\u30af\u30bb\u30b9\u3092\u65b0\u898f\u4f5c\u6210\r\n                    $item = new Blackurllist;\r\n                    $item-&gt;accessurl = $data['url']; \r\n                    $item-&gt;count = 1;\r\n                    $item-&gt;onoff = 1;\r\n                    $item-&gt;save();\r\n                }\r\n                $value = 2;\r\n            }\r\n        }\r\n        return $value;\r\n    }\r\n    \r\n    \/*\r\n     * \u25a0\u30d6\u30e9\u30c3\u30afIP\u5024\u3042\u308a\u65e2\u5b9a\u6570\u4ee5\u4e0b\r\n     * 1. $Actlog\u306b\u5024\u304c\u3042\u308b\u6642\u4f55\u3082\u3057\u306a\u3044\r\n     * 2. $Actlog\u306b\u5024\u304c\u7121\u3044\u6642\r\n     * \u3000\u30003.\u4e0d\u6b63URL\u3078\u306e\u30a2\u30af\u30bb\u30b9\u304b\u78ba\u8a8d\r\n     * \u3000\u30004.\u4e0d\u6b63URL\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306e\u6642\r\n     * \u3000\u3000\u30005.\u30d6\u30e9\u30c3\u30afIP\u306e\u5024\u3092\u52a0\u7b97\r\n     * \u3000\u3000\u30006.\u4e0d\u6b63URL\u3092\u52a0\u7b97\r\n     * \u3000\u30007.\u4e0d\u6b63URL\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3067\u306f\u306a\u3044\u6642\r\n     * \u3000\u3000\u30007.\u4e0d\u6b63URL\u306b\u30a2\u30af\u30bb\u30b9URL\u3092\u8a18\u8f09\u203b\u4f46\u3057onoff=1\u3067\u767b\u9332\u3059\u308b\r\n     *\/\r\n    public function BlackCancelerPath($data,$Actlogs,$BlackIp,$BlackAccess)\r\n    {\r\n        $value = 0;\r\n        if(empty($Actlogs)){\r\n            if(!empty($BlackAccess)){\r\n                #IP\u6700\u7d42\u30a2\u30af\u30bb\u30b9\u3092\u66f4\u65b0\r\n                $item = Blackiplist::where('id',$BlackIp-&gt;id);\/\/\u30d6\u30e9\u30c3\u30afIP\u30ea\u30b9\u30c8\u3092\u30b5\u30fc\u30c1\r\n                $item-&gt;update(['count' =&gt; ($BlackIp-&gt;count)+1]);\r\n                \r\n                #URL\u6700\u7d42\u30a2\u30af\u30bb\u30b9\u3092\u66f4\u65b0\r\n                $item = Blackurllist::where('id',$BlackAccess-&gt;id);\r\n                $item-&gt;update(['count'=&gt; ($BlackAccess-&gt;count)+1]);\r\n                \r\n                $value = 1;\r\n            }else{\r\n                #\u5ff5\u306e\u305f\u3081\u8a31\u53efURL\u306e\u8a18\u8f09\u3082\u542b\u3081\u30c1\u30a7\u30c3\u30af \u203b'\/'\u5bfe\u7b56\r\n                $BlackAccess2 = Blackurllist::where('accessurl',$data['url'])-&gt;first();\r\n                if(!empty($BlackAccess2)){\r\n                    #URL\u6700\u7d42\u30a2\u30af\u30bb\u30b9\u3092\u66f4\u65b0\r\n                    $item = Blackurllist::where('id',$BlackAccess2-&gt;id);\r\n                    $item-&gt;update(['count'=&gt; ($BlackAccess2-&gt;count)+1]);\r\n                }else{\r\n                    #URL\u30a2\u30af\u30bb\u30b9\u3092\u65b0\u898f\u4f5c\u6210\r\n                    $item = new Blackurllist;\r\n                    $item-&gt;accessurl = $data['url']; \r\n                    $item-&gt;count = 1;\r\n                    $item-&gt;onoff = 1;\r\n                    $item-&gt;save();\r\n                }\r\n                $value = 1;\r\n            }\r\n        }\r\n        return $value;\r\n    }\r\n    \r\n    #Error\u30d5\u30a3\u30eb\u30bf\u30fc\r\n    public function ErrorPageSeparater($status)\r\n    {\r\n        switch($status){\r\n            case 400:\r\n                return redirect('error\/500');\r\n                break;\r\n            case 401:\r\n                return redirect('error\/500');\r\n                break;\r\n            case 403:\r\n                return redirect('error\/500');\r\n                break;\r\n            case 404:\r\n                return redirect('error\/404');\r\n                break;\r\n            case 405:\r\n                return redirect('error\/404');\r\n                break;\r\n            case 419:\r\n                return redirect('error\/419');\r\n                break;\r\n            case 500:\r\n                return redirect('error\/500');\r\n                break;\r\n            case 503:\r\n                return redirect('error\/500');\r\n                break;\r\n            case 999:\r\n                return redirect('error\/999');\r\n                break;\r\n            default :\r\n                break;\r\n        }\r\n    }\r\n}<\/pre>\n<p>\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u91ce\u90ce\u3060\u3063\u305f\u3089\u52dd\u624b\u306bRedirect\uff01<\/p>\n<div class=\"borderBox\">$input = array('https:\/\/google.co.jp','https:\/\/www.rakuten.ne.jp','https:\/\/amazon.cn');<br \/>\nreturn redirect(array_rand($input,1));<\/div>\n<h3>\u307e\u3068\u3081<\/h3>\n<p>\u3053\u308c\u4f5c\u3063\u3066\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3057\u3066\u308b\u3068\u3001500\u56de\u8d8a\u3048\u306e\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u304c\u3056\u3089\u306b\u3042\u308b\u4e8b\u304c\u308f\u304b\u308a\u307e\u3059\u3002<\/p>\n<p>\u305d\u308c\u3082ACCESS\u5143\u8abf\u3079\u308c\u3070\u5927\u4f53\u304c\u4e2d\u56fd\u3002\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3057\u3063\u304b\u308a\u3057\u306a\u3044\u3068\u3067\u3059\u306d\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u3092\u6483\u9000\u3059\u308bLOG\uff06Redirect\u306e\u4ed5\u7d44\u307f \u30b7\u30b9\u30c6\u30e0\u3092\u7d44\u3093\u3067\u3044\u308b\u3068\u30de\u30b8\u3067\u30e0\u30ab\u3064\u3044\u3066\u304f\u308b\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u3002 \u306a\u305c\u3053\u3046\u3082\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u304c\u591a\u3044\u306e\u304b\u30db\u30f3\u30c8\u8179\u7acb\u305f\u3057\u304f\u611f\u3058\u3066\u3044\u307e\u3059\u3002 \u3068\u8a00\u3046\u4e8b\u3067\u3001\u4ee5\u524d\u306e\u8a18\u4e8b\u3067\u653b\u6483\u3092\u53d7\u3051\u308bURL [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":944,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"vkexunit_cta_each_option":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[34],"tags":[153,99,98,53,46,49,58,45,68],"class_list":["post-1561","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-memorandum","tag-laravel","tag-mysql","tag-php","tag-53","tag-46","tag-49","tag-58","tag-45","tag-68"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/qol-kk.com\/wp2\/wp-content\/uploads\/2018\/11\/laravel_logo.png","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/posts\/1561","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/comments?post=1561"}],"version-history":[{"count":0,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/posts\/1561\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/media\/944"}],"wp:attachment":[{"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/media?parent=1561"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/categories?post=1561"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/tags?post=1561"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}