if (!(new Agent)->isRobot()) {
abort(404);
}
return $next($request);
Route::middleware('web', 'isRobot')
...
Закрыть website от всех юзеров!
Вместо вебсайта показывать по всем роутам заглушку (любой html template)
Разрешить доступ только поисковым роботам
Разрешить доступ по параметрам статическим в URL
if ((new Agent)->isRobot() or $request->input('token') == '123') {
return $next($request);
}
abort(404);
$request->input('token') == '123')на
$request->input('key') == 'true')
$agent = new Agent();
$robot = $agent->robot();
if ($robot == 'Yandex') {}
$agent = new Agent();
$robot = $agent->robot();
$robots = [ 'Yandex', ... ];
if ( in_array($robot, $robots) ) {}
протестирую все варианты
зачем же мне тогда целый пакет лепить
public function handle(Request $request, Closure $next)
{
if ((new Agent)->robot() == 'Yandex' or $request->input('turbo') == 'true') {
return $next($request);
}
return response()->view('layouts.zaglushka');
}
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'robot' => \App\Http\Middleware\isRobot::class,
];
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\isRobot::class,
],
Route::group(['namespace' => 'Site', 'middleware' =>'web'], function() {
// Base websites Urls
Route::get('/', 'HomeController@index')->name('home');
Route::get('/route2', 'HomeController@route2')->name('route2');
// Redirects
Route::get('/route3', 'RedirectController@index');
Route::get('/download', 'RedirectController@download');
});
SetEnvIfNoCase User-Agent yandex AllowGroup
SetEnvIfNoCase User-Agent google AllowGroup
...
Order Deny,Allow
Deny from all
Allow from env=AllowGroup
Cкрыть сайт от всех пользователей, кроме поисковых роботов
SetEnvIfNoCase User-Agent yandex AllowGroup
RewriteCond %{ENV:AllowGroup} ^$
RewriteCond %{REQUEST_URI} !zaglushka
RewriteRule .* https://%{SERVER_NAME}/zaglushka [R=301,L]