php - 使用 slug 从 mysql 中获取文章

标签 php mysql .htaccess url-rewriting

我正在我的站点上编写自己的新闻文章部分,并将每篇文章存储在 mysql 数据库中。每篇文章都有一个唯一的 ID、一个标题、主体,并且由于 jquery 插件,它是自己的 url 友好的 slug。

但是,我不确定在链接到 slug 时到底如何获取文章。

如何获取:

www.site.com/news/nice-looking-title/

像这样工作:

www.site.com/news/index.php?id=1

这样我就可以使用 SQL 从 MySQL 表中获取记录,例如:

tbl_news:
news_id
news_title
news_slug
news_body
news_date

.htacccess 是否参与其中?

一如既往,非常感谢所有帮助! :)

保罗

最佳答案

好的,这就是我必须做的来解决这个问题。有点 hacky,但它有效。

拥有 RewriteRule (.*)/news/index.php 会导致网站上出现无限循环,就像在新闻目录中拥有 php 页面一样。所以我不得不将链接发送到不同的目录名称,并将它们重写到实际目录。

.htaccess

RewriteCond %{REQUEST_URI} /guild-news
RewriteRule guild-news/(.*)/ news/news-item.php?slug=$1
RewriteRule guild-news/(.*) news/news-item.php?slug=$1

PHP

$slug=$_GET['slug'];
$newsSQL = "SELECT *, DATE_FORMAT(news_date, '%W, %D %M, %Y') news_date_f FROM tbl_news WHERE news_slug = '".$slug."' AND news_visible=1";
$result = mysql_query($newsSQL, $conn) or die(mysql_error());

所以可能不是有史以来最好的代码,但它确实可以很好地满足我的需求:)

关于php - 使用 slug 从 mysql 中获取文章,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2417800/

相关文章:

Apache 以 404 而不是 403 响应,忽略 F 标志

apache - 使用参数和 php 查询重写 URL

php - 使用 PHP CURL 显示 PDF 文件只会产生奇怪的文本

php - 在 Laravel 4 中将 Eloquent 模型返回为 JSON

sql - MySQL ON 子句中的未知列

php - 将数据插入数据库时​​出现异常错误

javascript - Apache htaccess http 重定向到 https

php - 数据表:未捕获类型错误:无法读取未定义的属性 'parentNode'

php - Laravel 模型获取所有 $id = Auth::user()->id

php - 错误的值存储在数据库中