Как установить постоянную ссылку в своем блоге в соответствии с датой и названием публикации?

У меня есть этот сайт http://www.finalyearondesk.com . Ссылка на мои блоги размещена следующим образом: http://www.finalyearondesk.com/index.php?id=28 . Я хочу, чтобы это было так … finalyearondesk.com/2011/09/22/how-to-recover-ubuntu-after-it-is-crashed/.

Я использую следующую функцию, чтобы получить эти сообщения …

function get_content($id = '') { if($id != ""): $id = mysql_real_escape_string($id); $sql = "SELECT * from cms_content WHERE id = '$id'"; $return = '<p><a href="http://www.finalyearondesk.com/">Go back to Home page</a></p>'; echo $return; else: $sql = "select * from cms_content ORDER BY id DESC"; endif; $res = mysql_query($sql) or die(mysql_error()); if(mysql_num_rows($res) != 0): while($row = mysql_fetch_assoc($res)) { echo '<h1><a href="index.php?id=' . $row['id'] . '">' . $row['title'] . '</a></h1>'; echo '<p>' . "By: " . '<font color="orange">' . $row['author'] . '</font>' . ", Posted on: " . $row['date'] . '<p>'; echo '<p>' . $row['body'] . '</p><br />'; } else: echo '<p>We are really very sorry, this page does not exist!</p>'; endif; } 

И я использую этот код, чтобы разглядеть его на моей странице index.php …

 <?php if (isset($_GET['id'])) : $obj -> get_content($_GET['id']); else : $obj -> get_content_summary(); endif; ?> 

Любые предложения, как это сделать? И можем ли мы это сделать, используя .htaccess?

К сожалению, использование mod_rewrite заключается в том, что данные, которые вы поставляете в виде URL-адреса, не лучший способ запросить базу данных. Но тем не менее у вас есть переменные года, месяца, дня и названия, поэтому вам нужно будет переписать функцию get_content, чтобы запросить нечто вроде (в зависимости от того, как дата хранится в базе данных):

 select * from cms_content WHERE date='mktime(0,0,0,$month,$day,$year)' AND title='$title' ORDER BY id DESC 

.htaccess будет что-то вроде:

 RewriteRule ^(.*)/(.*)/(.*)/(.*)$ index.php?year=$1&month=$2&day=$3&title=$4