php-如何将现有的类别和产品转换为SEO友好的URL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-如何将现有的类别和产品转换为SEO友好的URL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2805字,纯文字阅读大概需要5分钟。
内容图文
我最近进行了一个项目,将旧的购物车网站(定制开发)转换为现代的SEO友好网站
这是我的问题,当前站点使用如下URL
http://www.domain.com/page.php?id=XX
我想将现有的页面数据库(产品和类别)转换为类似于以下内容的URL
http://www.domain.com/confectionery-&-snacks/lollies/cola-zombie-chews
如果用户要删除cola-zombie-chews,则网址应如下所示,并加载页面棒棒糖,依此类推,如果删除了棒棒糖,则将加载页面糖果和糖果.零食
http://www.domain.com/confectionery-&-snacks/lollies/
当前的数据库设置类似于以下内容
ID | TYPE | NAME
--------+-----------+------------
1 | category | confectionery & snacks
2 | category | lollies
3 | product | cola zombie chews
另一个问题是URL可能有4个类别,例如下面所示
http://www.domain.com/frozen-foods/seasonal/christmas/meat/smoked-salmon-1kg
我需要哪种类型的重写规则,以及我需要哪种类型的代码检查数据库中的url
我曾考虑过要在数据库中为子弹添加另一个列,然后复制名称并删除空格并替换为-
解决方法:
我认为@Vrac的回答很好1 :). @AntoineB也有一点.因此,我想在url创建部分添加一种稍有不同的方法,并进行更详细的介绍.
您想使用搜索引擎友好的URL,那么您需要做两件事:
>用所需的网址替换所有网址的page.php?id = XX.因此,此时单击新URL将返回404.
>所有新的URL应该对您的php有意义-这就是.htaccess php路由器的工作.
对于步骤1,
我想在每个产品页面上您都可以访问哪个产品属于哪个类别.如果数据库模式如您所提供的那样,则架构不足以确定哪个类别.因此,您需要第4列父级,该列将存储每个类别或产品的父级类别的ID.
而且,无论是类别还是对象,它们都具有一个类别作为父类别,或者根类别为nu??ll.
在页面中为类别或产品生成URL的php中,您需要从数据库中获取与当前项目关联的所有类别,并从最后一个嵌套节点(当前项目)到根爬上树.
因此,您将有一个循环,就像下面的简化代码所示.
小费:
>如果项目较少,则一次从db获取所有内容以保存数据库查询,然后循环搜索结果(在数组中)-情况称为a;
>否则,从仅从其ID查询当前项开始并获取其父项,然后在循环中执行另一个查询以再次获取新的父项-将其称为b;
因此,您将获得父级的父级,依此类推,直到parent为null.
<?php
$itemTree = [];
$allDBItems = mysql_query('SELECT * FROM items');
while($parent)
{
// getParent() is a function that loops on $allDBItems - in case a - and break loop on found $currItemInLoop['id'] === $myItem['parent']
// or - in case b - query the db like mysql_query("SELECT * FROM items WHERE id = $myItem[parent]");
$parent = getParent();
if ($parent) $itemTree[] = $parent;
}
$itemUrl = implode('/', array_reverse($itemTree));
是的,您已经生成了网址!
对于步骤2
在.htaccess中,将所有URL都无一例外地重定向到page.php,如下所示(我希望您可以拥有比page.php更好的名称,或者至少有一个root脚本有意义的index.php).
RewriteRule ^(.*)$index.php?path=$1 [NC,L,QSA]
就像@Vrac写道.
然后在index.php中像@Vrac那样写:
$path = $_GET('path');
$patharray = explode('/',$path);
//do processing based on contents of patharray
$category = $patharray[0];
$product = $patharray[1];
//etcetera, etcetera...
//serve up content based on the path that was requested
您已经完成!
内容总结
以上是互联网集市为您收集整理的php-如何将现有的类别和产品转换为SEO友好的URL全部内容,希望文章能够帮你解决php-如何将现有的类别和产品转换为SEO友好的URL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。