我想在不使用 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 背景透明