
أداة سطر أوامر سريعة لفحص المواقع وخرائط الموقع وقوائم عناوين URL بحثًا عن الروابط المعطلة، مع عمال متزامنين، تقارير تغطية، وتنسيقات إخراج متعددة.
البحث عن الروابط الميتة (الروابط المعطلة)
التوثيق • التثبيت • إجراءات GitHub • المساهمة • سجل التغييرات
الرابط الميت (الرابط المعطل) هو رابط داخل صفحة ويب لا يمكن الاتصال به. يمكن أن تؤثر هذه الروابط سلباً على تحسين محركات البحث (SEO) والأمان. تتيح هذه الأداة سهولة تحديدها وتعديلها.

هل تبحث عن الإصدار v1 (جوهرة Ruby)؟ أصبح الآن موجوداً في الفرع
legacy/v1وما زال ينشر جوهرةdeadfinderلإصدارات الإصلاحات الأمنية وإصلاح الأخطاء. الفرعmainيستضيف إعادة الكتابة بـ Crystal (الإصدار v2+).
brew install deadfinder
# https://formulae.brew.sh/formula/deadfinder
docker run ghcr.io/hahwul/deadfinder:latest deadfinder url https://example.com
حمّل الأرشيف الخاص بمنصتك من أحدث إصدار، واستخرجه، ثم ضع الملف deadfinder في مسار PATH.
nix run github:hahwul/deadfinder
nix profile install github:hahwul/deadfinder
nix develop github:hahwul/deadfinder
يتطلب Crystal >= 1.19.1 و cmake (لأمر ما بعد التثبيت (postinstall) لمحلل HTML lexbor — بدونه يفشل الأمر shards install مع الخطأ 'cmake': No such file or directory).
# macOS
brew install crystal cmake
# Debian / Ubuntu
sudo apt install crystal cmake
shards install
crystal build src/cli_main.cr -o deadfinder --release
# أو: فقط قم بالبناء
deadfinder sitemap https://www.hahwul.com/sitemap.xml
حدد علامة إصدار محددة. @latest ليس مرجعاً صالحاً لإجراءات Actions.
steps:
- name: تشغيل DeadFinder
uses: hahwul/deadfinder@v2 # يتتبع أحدث إصدار 2.x — حدد علامة محددة (مثل @2.0.2) لتكرار أكثر صرامة
id: broken-link
with:
command: sitemap # url / file / sitemap / pipe
target: https://www.hahwul.com/sitemap.xml
# timeout: 10
# concurrency: 50
# silent: false
# headers: "X-API-Key: 123444"
# worker_headers: "User-Agent: Deadfinder Bot"
# include30x: false
# user_agent: "Apple"
# proxy: "http://localhost:8070"
# proxy_auth: "id:pw"
# match: ""
# ignore: ""
# coverage: true
# visualize: report.png
- name: معالجة المخرجات
run: echo '${{ steps.broken-link.outputs.output }}'
إذا وجدت رابطاً ميتاً وتريد إضافته تلقائياً كمشكلة (Issue)، فيُرجى الرجوع إلى مقال "أتمتة اكتشاف الروابط الميتة".
Usage: deadfinder <command> [options]
Commands:
pipe Scan the URLs from STDIN
file <FILE> Scan the URLs from File
url <URL> Scan the Single URL
sitemap <SITEMAP-URL> Scan the URLs from sitemap
completion <SHELL> Generate completion script (bash/zsh/fish)
version Show version
Options:
-r, --include30x Include 30x redirections as dead links
-c, --concurrency=N Number of concurrent workers (default: 50)
-t, --timeout=N Timeout in seconds (default: 10)
-o, --output=FILE File to write results
-f, --output_format=FORMAT Output format: json, yaml, toml, csv, sarif (default: json)
-H, --headers=HEADER Custom HTTP headers for initial request
--worker_headers=HEADER Custom HTTP headers for worker requests
--user_agent=UA User-Agent string
-p, --proxy=PROXY Proxy server (HTTP and HTTPS CONNECT)
--proxy_auth=USER:PASS Proxy authentication
-m, --match=PATTERN Match URL pattern (regex)
-i, --ignore=PATTERN Ignore URL pattern (regex)
-s, --silent Silent mode
-v, --verbose Verbose mode
--debug Debug mode
--limit=N Limit number of URLs to scan
--coverage Enable coverage tracking and reporting
--visualize=PATH Generate visualization PNG
# مسح العناوين من STDIN (عناوين متعددة)
cat urls.txt | deadfinder pipe
# مسح العناوين من ملف
deadfinder file urls.txt
# مسح عنوان واحد
deadfinder url https://www.hahwul.com
# مسح العناوين من خريطة الموقع (sitemap)
deadfinder sitemap https://www.hahwul.com/sitemap.xml
deadfinder sitemap https://www.hahwul.com/sitemap.xml -o output.json
cat output.json | jq
{
"Target URL": [
"DeadLink URL",
"DeadLink URL",
"DeadLink URL"
]
}
مع --coverage:
deadfinder sitemap https://www.hahwul.com/sitemap.xml --coverage -o output.json
{
"dead_links": {
"Target URL": ["DeadLink URL 1", "DeadLink URL 2"]
},
"coverage": {
"targets": {
"Target URL": {
"total_tested": 14,
"dead_links": 7,
"coverage_percentage": 50.0
}
},
"summary": {
"total_tested": 14,
"total_dead": 7,
"overall_coverage_percentage": 50.0
}
}
}
deadfinder completion bash > /etc/bash_completion.d/deadfinder
deadfinder completion zsh > ~/.zsh/completion/_deadfinder
deadfinder completion fish > ~/.config/fish/completions/deadfinder.fish
نرحب بالمساهمات! إذا كانت لديك فكرة لتحسين أو تريد الإبلاغ عن خطأ:
feature/awesome-feature أو bugfix/annoying-bug).main الخاص بنا.