瀏覽器識別 `Content-Type: application/octet-stream` 且 `Content-Disposition: attachment; filename=xxx.url` 時,會下載一個 **Internet Shortcut(`.url`)** 文件。用戶雙擊即可在默認瀏覽器打開指定 URL。Windows 桌面快捷方式本質是文本文件,格式類似 INI。
<?php
// shortcut.php
$targetUrl = 'https://www.example.com/'; // 目標網址
$shortcutName = '我的網站.url'; // 下載文件名
$content = <<
`.url` 文件本身**不支持嵌入圖標**。若需自定義圖標,需生成 **`.lnk` (Shell Link)** 二進制文件,需借助 COM 組件(`WScript.Shell`)或第三方庫(如 `php-shelllink`),**僅在 Windows 服務器 + CLI/COM 權限下可行**。Web 環境一般不推薦。
現代瀏覽器支援「添加到主屏幕/桌面」生成原生應用體驗:
<!-- manifest.json -->
{
"name": "我的應用",
"short_name": "應用",
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#317efb",
"icons": [
{ "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" }
]
}
<!-- HTML head -->
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#317efb">
<!-- iOS -->
<link rel="apple-touch-icon" href="/icon-192.png">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="我的應用">
用戶點擊瀏覽器菜單「安裝」或「添加到主屏幕」,獲得帶圖標、全屏、離線緩存的類原生體驗,**跨平台、無需下載文件**。
| 方案 | 優點 | 缺點 | 適用場景 |
|---|---|---|---|
| .url 下載 | 極簡、無依賴、Windows 雙擊直達 | 無自定義圖標、僅 Windows、現代瀏覽器可能攔截下載 | 內部系統快速分享鏈接、老項目兼容 |
| PWA Manifest | 跨平台、自定義圖標/啟動頁、離線、推送通知 | 需 HTTPS、Service Worker 配置、用戶需主動「安裝」 | 面向公網的現代 Web 應用、移動端優先 |
| .lnk 生成 | 真正的 Windows 快捷方式、可指定圖標/參數/運行身份 | 需 Windows 服務器+COM 權限、二進制格式複雜、安全風險高 | 企業內網自動化部署、桌面管理腳本 |
Web 環境下**「生成 .url 文件下載」是最輕量的快捷方式方案**,代碼不超過 10 行。若追求專業體驗,請投入 PWA 技術棧;`.lnk` 僅限特定內網自動化場景。