на коленке кодил Code: <? #connect /// if(!empty($_GET['a'])){ $url=mysql_real_escape_string($_GET['a']); $query=mysql_query("SELECT * FROM `urls` where `url`='$url'"); if(mysql_num_rows($query)==1){ while($row=mysql_fetch_array($query)){ $url_real=$row['url_real']; } header("location: http://site.ru/$url_real"): } else { header("location: http://site.ru"); } } ?> <form action="" method="post"> Url:<input type="text" name="url"><br> <button>ok</button> </form> <? function create_url() { $arr = array('a','b','c','d','e','f', 'g','h','i','j','k','l', 'm','n','o','p','r','s', 't','u','v','w','x','y', 'z','A','B','C','D','E', 'G','H','I','J','K','L', 'M','N','O','P','R','S', 'T','U','V','W','X','Y', 'Z','F','1','2','3','4', '5','6','7','8','9','0'); $url = ""; for($i = 0; $i < 6; $i++) { $random = rand(0, count($arr) - 1); $url .= $arr[$random]; } return $url; } if(isset($_POST['url'])){ do { $url_random=create_url(); $q=mysql_query("SELECT * FROM `url` where `url`='$url_random'"); } while(mysql_num_rows($q)>0) $url_real=mysql_real_escape_string(htmlspecialchars($_POST['url'])); $query=mysql_query("SELECT * FROM `urls` where `url_real`='$url_real'"); if(mysql_num_rows($query)==0){ mysql_query("INSERT INTO `urls`(url,url_real) VALUES('$url_random','$url_real')"); echo 'site.ru/'.$url_random; } else { while($row=mysql_fetch_array($query)){ $url=$row['url']; } echo 'http://site.ru/'.$url; } } # (c) xhugo ?> htaccess: RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?a=$1