Make Ladill Link short URLs fully dynamic at click time.
Deploy Ladill Link / deploy (push) Successful in 1m55s

Forward query strings and path suffixes to the live destination, resolve public hosts from config/custom domains instead of hardcoding ladl.link, and keep proxy Location rewrites on the visitor host.
This commit is contained in:
isaacclad
2026-07-16 20:05:43 +00:00
parent a9ddd600db
commit d45f4b5c58
14 changed files with 195 additions and 28 deletions
@@ -5,7 +5,6 @@ namespace App\Http\Controllers\Public;
use App\Http\Controllers\Controller;
use App\Services\Link\LinkManagerService;
use App\Services\Link\LinkPlatformProxy;
use App\Support\LadillLink;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
@@ -19,13 +18,15 @@ class LinkRedirectController extends Controller
public function resolve(Request $request, string $slug, ?string $path = null): RedirectResponse|Response
{
if ($path === null || $path === '') {
$link = $this->links->resolve($request, $slug);
if ($link !== null && $link->isDirectRedirect()) {
return redirect()->away($link->destination_url, 302);
}
$link = $this->links->resolve($request, $slug);
if ($link !== null && $link->isDirectRedirect()) {
$target = $link->resolveRedirectUrl($request, $path);
return redirect()->away($target, 302);
}
// Catalog / QR ecosystem slugs: proxy so destination stays live in the source app.
return $this->platform->forward($request, $slug, $path);
}
}