/logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); /logo/social.webp` без themes/{theme}/ prefix. // Также social card crawlers (FB/Twitter/Telegram) и Google search index содержат старые // pre-cutover URLs. 301 → текущий theme's asset. $legacyLogoRedirect = function ($file) { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/{$file}", 301); }; Route::get('logo/{file}', $legacyLogoRedirect) ->where('file', '(social|og_image|twitter|favicon|logo|insthacker)\.(png|webp|jpg|jpeg|svg)'); // iOS Safari + iOS apps + Pinterest crawler автоматически запрашивают эти URLs независимо // от в HTML. 301 → theme's favicon.png (180×180+ ideally). $appleTouchRedirect = function () { $template = strtolower(config('core.template') ?? 't21'); return redirect("/themes/{$template}/logo/favicon.png", 301); }; Route::get('apple-touch-icon{any}.png', $appleTouchRedirect) ->where('any', '(-precomposed|-[0-9]+x[0-9]+|-[0-9]+x[0-9]+-precomposed)?'); // Password managers (1Password, Bitwarden, iCloud Keychain) probe этот URL для passkey // discovery (W3C draft). Без endpoint'а они fall back на password autofill — функционально // не сломано, но 404 в логах. Возвращаем валидный пустой manifest. Route::get('.well-known/passkey-endpoints', function () { return response()->json( ['enroll' => null, 'manage' => null], 200, ['Cache-Control' => 'public, max-age=86400'] ); }); Volg de locatie van Instagram zonder dat ze het weten – Onzichtbare GPS-monitoring | InstHacker

Zij delen hun locatie, u blijft onzichtbaar

Volg iemands Instagram-locatie zonder sporen achter te laten. Onze stealth-trackingtechnologie haalt GPS-gegevens stil op — geen vriendschapsverzoeken, geen verdachte activiteiten, geen meldingen die de doelpersoon bereiken. Ze posten normaal, terwijl al hun bewegingen op uw privékkaart verschijnen.

Onzichtbare tracking: hoe het echt werkt

Geen interactie nodig

Traditionele stalkingmethoden laten sporen achter: profielbezoeken, volgverzoeken, verhaalweergaven. Onze aanpak is anders. We halen locatiegegevens op via backend-kanalen die nooit in aanraking komen met het meldingssysteem van de gebruiker. Je blijft volledig onzichtbaar tijdens het hele proces.

Het waarschuwingssysteem van Instagram omzeilen

Instagram waarschuwt gebruikers bij screenshots, profielbezoeken van bepaalde accounts en inlogpogingen. Locatie-extractie via onze tool activeert geen van deze waarschuwingen. Het beveiligingssysteem herkent onze methode voor gegevensverzameling simpelweg niet als traceerbare activiteit.

Stille verhaalbewaking

Verhalen met locatiestickers verdwijnen binnen 24 uur, maar niet voordat ons systeem ze heeft vastgelegd. We monitoren doelaccounts continu en verzamelen locatiegegevens van tijdelijke posts zonder ons als kijker te registreren. Ze zien uw naam nooit in hun lijst met verhaalweergaven.

Instagram-locatie volgen iPhone | InstHacker

Beweegingen monitoren zonder gedetecteerd te worden

Volg de locatie van elke Instagram-gebruiker volledig anoniem. Ze blijven gewoon posten, zonder te weten dat elke getagde locatie rechtstreeks naar uw dashboard wordt gestuurd.

Geen digitale voetafdruk

Geen profielbezoeken geregistreerd. Geen vermelding in de lijst met kijkers. Geen meldingen voor volgers. Uw trackingactiviteiten vinden volledig buiten de gebruikerssystemen van Instagram plaats. Volledige onzichtbaarheid gegarandeerd.

Stealth-waarschuwingssysteem

Ontvang meldingen wanneer er nieuwe locatiegegevens verschijnen — stil aan uw kant, onzichtbaar aan hun kant. Weet direct waar ze zich bevinden, zonder ooit uw interesse in hun verblijfplaats te onthullen.

Continue achtergrondmonitoring

Stel het in en vergeet het. Ons systeem houdt het doelaccount 24/7 in de gaten en legt automatisch elke post, verhaal of check-in met locatietag vast. Bekijk de verzamelde gegevens op elk moment vanuit uw beveiligde dashboard.

Volg zonder sporen achter te laten

1

Anonieme installatie

Voer de gebruikersnaam van het doelwit in via een versleutelde verbinding. Er is geen koppeling van accounts nodig. Uw identiteit blijft volledig gescheiden van het volgproces.
2

Stealth-modus geactiveerd

Het systeem begint met monitoren zonder dat er zichtbare activiteit op het account van het doelwit plaatsvindt. Er worden geen volgers, likes of views geregistreerd. Het verzamelen van gegevens gebeurt in het geheim.
3

Locatiegegevens worden privé geleverd

GPS-coördinaten, getagde locaties en bewegingspatronen verschijnen alleen in uw dashboard. Geen gedeelde toegang, geen gegevenssporen, geen verbinding met uw persoonlijke Instagram.

Veelgestelde vragen

Profiteer nu

Klaar om te beginnen?

Voer uw internationale telefoonnummer of gebruikersnaam in en druk op "Start" om de sessie te starten.

1