通過 PHP 動態生成 .url 文件,用戶點擊下載後雙擊即可在桌面創建網站快捷方式。原理是輸出符合 INI 格式的 Internet Shortcut 內容,並設置正確的 HTTP 頭觸發下載。
<a href="generate.php?url=https://www.example.com&name=ExampleSite">
生成桌面快捷方式
</a>
<?php
$url = $_GET['url'] ?? '';
$filename = urldecode($_GET['name'] ?? '');
// 字符集轉換(視項目編碼而定,UTF-8 專案通常無需轉換)
// $filename = iconv('GBK', 'UTF-8', $filename);
if (!$url || !$filename) {
exit('參數缺失');
}
// Internet Shortcut 文件內容
$shortcut = <<
.url 本質是 INI 文件,關鍵段為 [InternetShortcut],必須包含 URL 鍵{000214A0-0000-0000-C000-000000000046} 代表 Internet Shortcut 的系統標識19,2 設置圖標索引等屬性(可選)Content-Type: application/octet-stream 強制下載Content-Disposition: attachment; filename="xxx.url" 指定下載文件名filename*=UTF-8''%E4%BE%86%E6%BA%90.url,兼容性更好$shortcut = <<
用戶桌面快捷方式將顯示網站 Favicon。
$url 協議(僅允許 http/https),防止 file://、javascript: 等危險協議$filename 做路徑遍歷過濾,移除 ../、..\\ 等