处理具有许多页面的页面标题和SEO项目的最佳方法


best way to handle page title and SEO items with many pages?

我的网站正在慢慢变大,我意识到我不想在最后继续回头编辑元标签和标题等。

我的想法是在每个页面的头部包含一个php页面。

然后我会有多个 if 语句,这些语句都做了一个preg_match来获取页面 url,然后它会回显出适当的信息。

if (preg_match('@page1?@i',$_SERVER['REQUEST_URI'])) {
    echo <title> Title </title>
}

等等。

这是一种可靠的方法吗?所以所有内容都在一个文件中"易于"编辑?

取决于你类的大小。如果你的网站只有20个左右的页面,那很好,如果你有更多的页面,或者它们经常变化,那么它就不那么好了,很快就会变得混乱。此外,它很容易意外添加语法错误,或者在编辑实时代码时破坏您的网站。

一种可能性是将每个 URL 的元数据存储在数据库中。然后,您可以使用 SQL 查找该 URL 的元数据,而不是一系列 if 语句。

但是,更容易的是使用预先构建的框架或CMS(内容管理系统(。这些有一个学习曲线,尽管许多可以很快掌握。我建议研究一下Wordpress;它是开源的,有一个简单的后端,良好的文档,并且很容易成为主题。或者,你可以使用drupal,joomla,或者自己在cakePHP或Codeignter等框架之上构建它。

要做出决定,您应该考虑解决方案将来的可维护性,以及您愿意投入多少时间来开发网站。每个解决方案都有其问题,有些解决方案更适合不同的方案。

如果您正在寻找一个简单的 preg_match 语句来确定您的 URL 中的页面,那么您可以摆脱以下操作:

$uri = $_SERVER['REQUEST_URI'];
//$uri = '/page43/';
if (preg_match("/page([0-9]+)/i",$uri,$matches)){
    echo '<title> Title - Page '.$matches[1].'</title>';
}

我认为您应该将该代码放在一个文件中,并将其命名为title.php并保存在根文件夹中,然后使用<?php iclude_once('title.php') ?>添加每个网页的开头。