我想在不使用 slug 的情况下使 PHP seo 的博客 URL 变得友好

Posted

技术标签:

【中文标题】我想在不使用 slug 的情况下使 PHP seo 的博客 URL 变得友好【英文标题】:I want to make Blog Url of PHP seo friendly without using slug 【发布时间】:2015-11-09 22:22:09 【问题描述】:

我正在开发一个带有自定义 cms 的核心 php 网站。我在使博客网址的 seo 友好时遇到问题。

我的网址属于这种类型,我想要这样的网址 网站名称/博客/标题 如果我通过 htaccess 文件修复它,那将是静态的,因为我想要一个也适用于未来博客文章的函数。 所以请帮我解决这个问题。

【问题讨论】:

【参考方案1】:

使用 htaccess 将特定博客标题设为 $_GET

RewriteRule    ^blog/([A-Za-z0-9-]+)/?$    /blogs.php?blog=$1    [NC,L]

然后您可以从博客的 id 或标题中打印出博客

设置完成后,您需要从 blogpost.php 脚本中数据库的博客表中获取 $_GET 数据,如下所示:

$sql ="SELECT * FROM blog_table WHERE title = ".$_GET['blog']." LIMIT 1";

$blog = mysqli_fetch_array(mysqli_query($sql));

echo '<h1>'.$blog['title'].'</h1>';
echo '<p>'.$blog['content'].'</p>';

显然需要考虑安全性,准备好的语句会更好。

【讨论】:

这可以使 yoursite.com/blog/any-blog 正常工作,这就是它在数千个网站上的工作方式。你现在需要做的是让你的 blogpost.php 脚本做它需要做的事情。它应该获取博客的 $_GET 变量(可能是它的标题)并从数据库中检索它并显示为博客。那是你在做什么吗?它应该是所有博客的一页,并且是 100% 动态的。 嗨,我也试过这个,但它不起作用。请告诉我我现在在做什么 我正在使用 echo $row['post_slug'];用于展示。这就是蛞蝓来的原因,但是当我把你的,它没有显示。请帮忙 好吧,我刚刚访问了那个域,看起来你的访问文件在某种程度上可以工作,因为它现在支持动态 url。如果您只是复制了我的 htaccess 代码,那么我设置的 $_GETvar(令人困惑)是博客,因此请尝试: echo $_GET['blog'];如果那没有显示您所写的任何内容,请尝试: print_r($_GET);然后你就会知道哪里出错了。 请将输出发布到:print_r($_GET);【参考方案2】:

你可以试试:-

RewriteEngine On
RewriteBase /

RewriteRule ^blogpost.php/(.+)(/?)$ /blogpost.php/?post_slug=$1 [NC,L]

# or slightly nicer would be to remove the `.php` thus:-
RewriteRule ^blogpost/(.+)(/?)$ /blogpost.php/?post_slug=$1 [NC,L]

【讨论】:

以上是关于我想在不使用 slug 的情况下使 PHP seo 的博客 URL 变得友好的主要内容,如果未能解决你的问题,请参考以下文章

无法在不中断堆叠顺序的情况下使 QQuickWidget 背景透明

如何在不传递数组的情况下使数组可访问到类中?

如何在不创建管理页面菜单的情况下获取页面的 slug 名称

在不混合的情况下使不透明的 UIView 变暗

Codeigniter - SEO 友好的 URL 结构(Slug 实现)

是否可以在不安装 Excel 的情况下使其自动化?