가벼운 URL 단축키를 원한다면 직접 작성하는 것이 가장 쉬운 방법 일 것입니다. DBM을 사용하는 나의 간단한 간단한 단축 스크립트를보십시오. 당신이 그것을 필요로하는 경우에 htaccess로
RewriteEngine On
RewriteRule ^(\w{5})$ /index.php?key=$1
와
<?php
header('Content-Type: text/plain');
// Add url
if (isset($_GET['add'])) {
$db = dba_open("/tmp/shortner.db", "c", "db4");
if (!$db) trigger_error("dba_open failed", E_USER_ERROR);
$key = substr(base_convert(md5($_GET['add']), 10, 36), 0, 5);
dba_insert($key, $_GET['add'], $db);
dba_close($db);
echo "http://{$_SERVER['HTTP_HOST']}/$key";
exit();
}
// Get url
$db = dba_open("/tmp/shortner.db", "r", "db4");
if (!$db) trigger_error("dba_open failed", E_USER_ERROR);
if (isset($_GET['key']) && dba_exists($_GET['key'], $db)) {
$url = dba_fetch($_GET['key'], $db);
}
dba_close($db);
if (!isset($url)) {
header("HTTP/1.0 404 Not Found");
echo "Not found $_GET[key]";
exit();
}
header("Location: $url");
echo $url;
은 쉽게 그냥 직접 작업을 수행하기 전에, 히트 카운터를 추가 할 수 있습니다. (이 경우 'w'모드에서 DB를 엽니 다.)
키는 URL의 해시를 기반으로하므로 동일한 URL을 다시 추가하면 동일한 키 (따라서 단축 URL)를 얻게됩니다.
성능 문제가 있습니까? 단 하나의 데이터베이스 값을 ""로 설정하면 도움이되지 않습니다. 존재하지 않는 문제를 찾고있는 것 같습니다. – jszobody
https://github.com/YOURLS/YOURLS/search?q=title&ref=cmdform https://github.com/YOURLS/YOURLS/blob/546057fc5ad1ea6158251679ab13b0d630da6ddd/includes/functions.php로 이동하여 yourls_insert_link_in_db ($ url , $ keyword, $ title = ''); 그러나 @ jszobody가 말했듯이, 그것은 당신의 문제를 해결하지 않을 것입니다. 어쩌면 문제를 제기하는 것이 문제 해결의 더 좋은 방법일까요? https://github.com/YOURLS/YOURLS/issues – x29a
나는 단축 URL을 가져야하는 사회적인 단추가있는 레일 응용 프로그램을 가지고 있으므로 컨트롤러에서 단축 링크를 생성하여 해당 소셜 링크에 삽입합니다. 내가 새로운 것을 생성하고 싶다면, yourls는 제목을 찾아 그것을 열려고 시도하고, 레일은 새로운 URL을 생성하려고 시도합니다. 문제는 내가 yourls와 http 검사에서 제목이 필요 없다는 것입니다. 나는 github이 훌륭한 검색 기능을 가지고 있다는 것을 몰랐다. –