我给了你一个upvote:
all you have infinity php files…
那是因为Joomla的代码非常糟糕.但是,所有内容管理系统都有基本相同的问题需要解决.基本目标是将给定的URL与所需的“页面”相关联 – 这是内容/布局/样式等.管理面板允许您选择/创建内容并将其与给定的URL相关联.内容和设置存储在数据库中.当您访问该站点时,您实际上被定向到一个php文件 – index.php.该php文件将引入其他需要的PHP文件,基本上查看当前的URL,找到该URL的内容和设置,并使用这些设置显示该内容.
您关注的很大一部分似乎与路由有关.在这里查看我的答案,了解路由的基本示例(这应该对您有很大的帮助):Htaccess and user accounts
内容管理系统通常还允许您将页面内容与其设计分开.这是一件很棒的事情.如果您的网站上有20页,并且您决定重新设计该网站,则根本不需要触摸该内容.考虑一下:
{{article.title}}
{{article.date | date:'mediumDate'}}
From: {{article.category}}
{{article.categoryDesc}}
{{article.content}}
这是我正在创建的CMS的实际模板标记.如果我有20页的文章,这一组代码将在所有20页上重复.把手{{}}是用于从数据库中提取内容的钩子.所以,如果我想更改文章布局,我可以简单地打开这个模板文件并将其更改为:
{{article.content}}
{{article.title}}
{{article.date | date:'mediumDate'}}
From: {{article.category}}
这肯定比必须更改20个文件中的代码更好! CMS中的很多东西都是模板化的 – 整个站点以及各个内容片段(插件),如twitter feed等.
关于SEO
SEO抓取工具只能看到页面的来源.此时,与静态页面和CMS生成的页面没有区别.
网址
使用CMS的一大优势是它可以强制执行SEO原则.首先,为了获得SEO网址,您必须实施某种路由,以便您的网址看起来像site.com/about而不是site.com/about.html.一个好的CMS将内置这个.
元标记
而< meta>标签现在不像以前那么重要,它们仍然可以提供帮助.如果您在管理面板中设置了CMS,则CMS应根据默认设置自动为您生成这些设置,并为每个页面添加可选覆盖.你可以争辩说,这可以确保每一页都有元数据并且不会遗忘.