php 搜索引擎优化 如何制作一个CMS具有SEO友好的URL(图)

优采云 发布时间: 2021-04-26 03:07

  php 搜索引擎优化 如何制作一个CMS具有SEO友好的URL(图)

  源代码和更多资源简单的PHP cms教程

  SEO(搜索引擎优化,搜索引擎优化)对于每一个网站都非常重要。如果您不优化网站,搜索引擎将找不到您的网站。因此,没有人去拜访网站。

  本教程仅说明SEO的一个方面,以便使网页具有友好的URL。我们很早以前就知道phpNuke和Joomla,但是它们都有相同的问题,即它们的Web链接看起来很难看:“ index.php?id = 653&page_type = blog&lang = en”。这些链接看起来都一样,很难输入。像Google这样的搜索引擎也不喜欢这种类型的URL。

  如今,新一代的cms出现了,有些是使用CodeIgniter框架制作的,有些是使用Moodle或Drupal制作的。但是这些cms仍然有类似的SEO问题。此后不久,Wordpress就问世了。

  这些cms的缺点之一是它们是为通用站点制作的。例如,Wordpress最初是一个博客系统,现在提供用于制作任何类型网站的插件。但是对于这样的系统,您需要大量的类,代码,插件和维护。

  另一件事是,您无法在获取源代码的同时为客户出售GPL许可的代码。他们最终会听到您让他们为开源软件付费,他们可能会不喜欢它。

  鉴于此,最好的解决方案可能是使自己的cms轻巧。您可以根据需要许可它,编写时将非常清楚,并且您具有自定义的数据库结构。

  我们将面临的问题是“ index.php?id = 653&page_type = blog&lang = en”问题。因此,让我们看看如何制作一个cms SEO友好的网址。

  PHP SEO友好的URL链接

  SEO友好链接必须具有页面标题,它们必须具有可读性,并且必须摆脱index.php。例如,如您所见,“如何制作对SEO友好的链接”或“为PHP类创建站点的类”站点没有index.php,没有文件扩展名,可读性很强,您可以从链接中获取标题。这些链接必须动态生成非常重要。

  然后回到“ index.php?id = 653&page_type = blog&lang = en”,当我们解决它时,我们拥有“ index.php”,这是处理cms中所有请求的主要PHP文件。

  我们有文章的“ id”参数,我们有一个“ type”参数,在这种情况下,其值为“ blog”,但可以是任何东西,产品,文章或博客。最后,我们有一个“ lang”参数,适用于多种语言的网站。在本教程中,我将跳过“ lang”参数。我们需要在“ how-to-make-seo-friendly-links”链接中模仿相同的功能,因此我们可以这样做:

  将所有URL请求重定向到一个位置进行处理。检查链接表并获取我们需要的数据,ID和类型。根据元素类型,我们调用适当的插件来处理和显示数据。用一个脚本处理所有请求

  如果我们希望所有URL由脚本或ndex.php文件处理,则需要配置.htaccess文件。我们需要在我们的Web服务器上安装Apache,该Web服务器通过.htaccess文件提供配置控制。 .htaccess文件必须使用RewriteEngine伪指令来启用URL重写模块。然后只需添加一条规则即可将所有请求转发到index.php。

  RewriteEngine On

RewriteBase /cms/

RewriteCond %{REQUEST_FILENAME} !-d [NC]

RewriteCond %{REQUEST_FILENAME} !-f [NC]

RewriteRule ^(.*)$ index.php?pid=$1 [QSA,L]

  务必仔细设置这些说明。在上面的示例中,除非有人直接访问PHP或HTML文件或请求路径位于文件夹中的图像,CSS或JS,否则我将所有流量重定向到index.php。

  使用[NC]标志将使RewriteRule以不区分大小写的方式匹配。换句话说,它并不关心字母在匹配的URI中是大写还是小写。

  开始编写index.php

  现在,我们将处理index.php的所有请求,在这里我们需要执行常规检查:谁来了,他需要什么。 index.php就像一个流量管理器。我们需要捕获即将到来的链接,并使用之前生成的所有链接来查询MySQL数据库中的特殊表,我们获得与链接URL关联的页面的ID和类型。首先让我们看一下表结构:

  CREATE TABLE IF NOT EXISTS `members` (

`memberID` int(11) NOT NULL AUTO_INCREMENT,

`username` varchar(255) NOT NULL DEFAULT '',

`password` varchar(60) NOT NULL DEFAULT '',

PRIMARY KEY (`memberID`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

INSERT INTO `members` (`memberID`, `username`, `password`) VALUES

(1, 'admin', '$1$8I4.v32.$bV9MWNrNAFA1bdD/JS/FW1');

// Username - admin , Password - demo

  让我们看看下面的PHP代码:

  如您所见,首先我们在请求URL中获得了“ $ pid”。然后,我们使用该语句查询数据库以获取元素的类型和ID。如果该元素不存在,我们会将代码重定向到自定义404页面。

  如何获取SEO友好的URL信息

  获取元素的类型和ID之后,其余的操作很简单。我们需要发起另一个请求以获取基于URL类型的元素详细信息。

  因此,让我们假设cms中有两种类型的元素:产品和博客。如果是Blog,我们将查询blogs表并请求blogs.php文件来处理该页面。如果是产品,则查询产品表并获取其详细信息,然后调用products.php来显示该页面。这些是产品和博客表:

  CREATE TABLE IF NOT EXISTS `pages` (

`pageID` int(11) NOT NULL AUTO_INCREMENT,

`pageTitle` varchar(255) DEFAULT NULL,

`isRoot` int(11) NOT NULL DEFAULT '1',

`pageCont` text,

PRIMARY KEY (`pageID`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

----------------------------------

CREATE TABLE IF NOT EXISTS `webpages` (

`id` int(9) NOT NULL AUTO_INCREMENT,

`Title` varchar(255) NOT NULL,

`URL` varchar(255) NOT NULL,

`Keywords` varchar(150) NOT NULL,

`Description` varchar(250) DEFAULT NULL,

`PageDetails` varchar(5000) DEFAULT NULL,

`PageName` varchar(90) DEFAULT NULL,

`PageType` int(3) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;

  public function particularPageSlug($id) {

$list="select * from webpages where URL='$id'";

$result= $this->query($list);

$count= $result->num_rows;

if($count < 1){}else{

while($row= $result->fetch_array(3)){

return $row;

}

}

}

  在管理界面中创建SEO链接

  我们已经看到了如何将URL请求重定向到index.php以及如何基于URL类型显示产品和博客类型信息。现在,我们将研究如何在管理界面中创建这些链接并将其添加到“ urls”表中。

  添加博客时,我们将所有数据插入“博客”表中,现在我们想要获取博客ID。我们需要在“ URL”表中使用此ID。我们还需要标题来创建链接。现在,我们将使用create_link()函数:

<p>

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线