Php 如何根据文章的日期和标题设置博客文章的永久链接?
我有这个网站。我的博客帖子链接设置如下。我希望它设置成这样。。。finalyerondesk.com/2011/09/22/how-to-recover-ubuntu-after-it-is-crash/ 我正在使用以下函数获取这些帖子Php 如何根据文章的日期和标题设置博客文章的永久链接?,php,mysql,.htaccess,Php,Mysql,.htaccess,我有这个网站。我的博客帖子链接设置如下。我希望它设置成这样。。。finalyerondesk.com/2011/09/22/how-to-recover-ubuntu-after-it-is-crash/ 我正在使用以下函数获取这些帖子 function get_content($id = '') { if($id != ""): $id = mysql_real_escape_string($id); $sql = "SELECT * from cms
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;
}
函数get_content($id=''){
如果($id!=“”):
$id=mysql\u real\u escape\u字符串($id);
$sql=“从cms_内容中选择*,其中id='$id';
$return='';
回音$return;
其他:
$sql=“按id描述从cms\U内容顺序中选择*”;
endif;
$res=mysql\u query($sql)或die(mysql\u error());
如果(mysql_num_rows($res)!=0):
while($row=mysql\u fetch\u assoc($res)){
回声';
回应“”,作者:“$row['author'].”,发布于:“$row['date'].”;
回显“”.$row['body']”。; } 其他: echo'我们真的非常抱歉,此页面不存在!; 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函数以查询类似的内容(取决于日期在数据库中的存储方式): .htaccess将类似于:
RewriteRule ^(.*)/(.*)/(.*)/(.*)$ index.php?year=$1&month=$2&day=$3&title=$4
如果你的服务器上启用了mod_rewrite,那么你可以在.htaccess中使用它。但是这会是一篇文章吗?或者告诉我怎么做?wordpress是怎么做到的?我从来没有和wordpress合作过,所以我不知道。你熟悉正则表达式吗?您可以使用正则表达式捕获组的重写规则来实现这一点。看到这个,我想达到这样的效果,您也可以考虑实际检查,我没有列年、月、日。相反,我有一个名为“date”的列作为时间戳。那么现在怎么做呢?
RewriteRule ^(.*)/(.*)/(.*)/(.*)$ index.php?year=$1&month=$2&day=$3&title=$4