php - How do URLs work?
i have build urls of site stack overflow urls. urls below.
http://www.example.com/1255544/this-is-the-url-text in url, 1255544 id , this-is-the-url-text url title text, both stored in database. have noticed stack overflow urls work on base of id. suppose here stack overflow url
http://stackoverflow.com/questions/15679171/new-way-to-prevent-xss-attacks in url, 15679171 id of post. when changed id 15706581 without touching new-way-to-prevent-xss-attacks , pressed enter, url automatically changed following url:
http://stackoverflow.com/questions/15706581/simplecursoradapter-does-not-load- external-sqlite-database-id-error and when tried remove of part of url title text below
http://stackoverflow.com/questions/15679171/new-way-to-preve it automatically corrects url below:
http://stackoverflow.com/questions/15679171/new-way-to-prevent-xss-attacks it means data being retrieved database on basis of id 15679171 , relevant url title text, new-way-to-prevent-xss-attacks, attached according id.
i want this. problem is, not going understand if change id of url title text should automatically changed. how do this?
i have thought following:
$url_id = $_get["id"]; $url_txt = $_get["url_txt"]; $qry = "select * mytable url_id = '{$url_id}' limit 1"; $data = mysql_query($qry); $data_set = mysql_fetch_array($data); if($url_txt== $data_set["url_txt"]) { // proceed further } else { $rebuilt_url = "http://www.example.com/" . $url_id . "/" . $data_set["url_txt"]; header("location: {$rebuilt_url}") // redirect url } is proper , efficient way perform action or not? there solution?
your code looks pretty , in 1 of stack overflow answers had suggested similar approach. however, suggest 1 minor improvement. instead of:
header("location: {$rebuilt_url}"); you should do:
header ('http/1.1 301 moved permanently'); header("location: {$rebuilt_url}"); this let browser cache these urls aggressively , code , sql queries not executed every time.
also check:
Comments
Post a Comment