通常我有主页面(index.php),包括页眉/页脚/菜单和页面内容。更改内容从GET / POST方法检查一些变量:对于每个条件,我加载请求的页面。
某些事情如:
website/
website/index.php?explore=forum
website/index.php?explore=users
website/index.php?explore=articles
依旧......
现在,我的网站正在增长,我认为最好的方法是直接调用每个部分的“索引”页面;所以例如上面,这将被翻译为:
website/
website/forum/
website/users/
website/articles/
看起来更好,更易于管理!问题是,如果我这样做,我需要为每个区域(包括页眉/页脚/菜单)实现轮廓。
所以我不知道是否有更好的策略,如果方便的话。欢迎任何建议/意见!感谢
答案 0 :(得分:2)
通过执行apache重写,您可以获得最高策略的最终结果。例如,/ forum可以重写为www.yoursite.com/index.php?article=forum等。
以下是完整指南:http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
答案 1 :(得分:2)
查看一个MVC框架,如Symfony(PHP),Rails(Ruby)或Django(Python)。
在MVC设计模式中,您通常有一个前端控制器来处理所有负载。您有与您的数据源交互的模型,并且您具有定义用户界面的视图。控制器通过模型加载数据,然后将这些数据传递给视图。
在您的示例中,每个部分都有不同的控制器,不同的交互类型(最常见的是创建,列表,删除,编辑)具有不同的操作。
答案 2 :(得分:2)
您可以使用.htaccess重写规则将这些漂亮的网址重定向到单个index.php
文件。
唯一的问题是,您必须想出一种区分网址的方法,以便将网址与正常网址(website/forum/
,website/users/
等)进行重定向(website/css/
,website/images/
等。)。
有一些选择:
website/[pagename]/
,而不是website/page/[pagename]/
。然后,您的正则表达式可以将每个匹配^/?page/[\w+]/?$
的网址重定向到index.php?explore=[pagename]
^/?[forum|users|articles]/?$
答案 3 :(得分:1)
在我们的PHP项目中(没有像Symfony这样的框架),我们肯定会为每个部分提供不同的目录和单独的索引文件,就像你说的那样。
但我们通常只有一个标题包含文件和一个页脚文件,它适用于网站上的每个页面。这使页眉和页脚保持一致,更易于管理。
您始终可以使用类似
的行来包含页眉和页脚<?php include('../includes/head.php'); ?>
如果要将这些文件保存在自己的目录中。我认为我们实际上已经/包含在我们的包含路径中所以我们的行只是说
<?php include('head.php'); ?>