2013-11-14 43 views
0

我正在考慮如何更改yourls以更快地製作新縮短的網址。我真的不知道它在代碼中的位置,但是當「yourls」創建新的縮短url時,它會爲數據庫添加標題,所以我假設它必須打開給定的url並解析它以獲取url。我不需要它,也許它會導致這個簡短的URL創建緩慢。我想讓自己的網址變短,但我真的沒時間了。升級yourls - 創建新網址的最短時間

您認爲什麼,我可以在yourls腳本中更改什麼,以及我可以在代碼中找到它在哪裏搜索它(我會不斷地將標題設置爲「」,導致此列可以保留現在的數據庫)。

+0

您是否有緩慢的性能問題?只設置一個數據庫值「」並不會對你有很大的幫助。聽起來你正在尋找一個不存在的問題。 – jszobody

+1

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 ,$關鍵字,$ title ='');但正如@jszobody所說,它不會解決你的問題。也許提出問題是解決問題的更好方法? https://github.com/YOURLS/YOURLS/issues – x29a

+0

我有軌道應用程序與社交按鈕,這需要縮短網址,所以我在控制器中生成縮短的網址插入到這些社交鏈接。如果我想生成一個新的,yourls尋找標題,並試圖打開它,rails試圖生成新的url ... 問題是,我不需要titlels和yourls以及任何http檢查。我不知道github有這麼好的搜索功能。 –

回答

0

沒有真正做對你說的是,我不認爲你可以認爲這是問題的查詢desc。您需要對整個腳本進行配置文件以查找緩慢運行的位置。

+0

我應該早些提一下。它是試圖在控制器中縮短url的rails applcation,所以當爲網頁創建新的url時,它會打開此頁面,並嘗試製作相同的url,這是循環的。 –

1

如果你只是想要一個輕量級的縮短網址,寫你自己可能是要走的最簡單的方法。看看我使用DBM的簡單簡短腳本。

<?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; 

隨着的.htaccess

RewriteEngine On 
RewriteRule ^(\w{5})$ /index.php?key=$1 

您可以輕鬆地只是做的直接前添加命中計數器,如果你需要它。 (在這種情況下,以'w'模式打開數據庫)。

注意,關鍵是基於URL的哈希值,所以如果相同的URL再次添加它只是得到了相同的密鑰(從而縮短URL)。

+0

太好了,謝謝。如果我不會解決你的問題,我會使用它:) –