【问题标题】:Website File and Folder Structure网站文件和文件夹结构
【发布时间】:2014-07-24 18:57:36
【问题描述】:

我在学习网站结构应该如何正确时遇到问题。我的意思是如何对页面进行编码以及文件夹结构应该如何。

目前,当您想转到另一个页面时,我正在使用 PHP 中的 GET 变量浏览我的网站,因此我总是加载 index.php 文件。我会像这样加载我想要的页面:

$page = "error";

if(isset($_GET["page"]) AND file_exists("pages/".$_GET["page"].".php")) {

    $page = $_GET["page"];

} elseif(!isset($_GET["page"])) {

    $page = "home";

}

还有这个:

<div id="page">
    <?php
         include("pages/".$page.".php");
    ?>
</div>

我这样做的原因是因为它使创建新页面变得更加容易,因为我不必像这样在每个文件中链接样式表和 javascript:

<head>
    <title>
        Website Name
    </title>

    <link href='http://fonts.googleapis.com/css?family=Lato:300,400' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="css/style.css" type="text/css">
    <link rel="shortcut icon" href="favicon.png"/>

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript"></script>
    <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js" type="text/javascript"></script>

</head>

如果我试图从 pages 文件夹内的文件夹中访问页面以防止混乱,这样做会出现很多问题,因为 URL 看起来不正常(“?page=apanel/app”)。

显然,这不是唯一的方法,我找不到正确的方法,因为我确信网站不会在每个文件中链接样式表,因为如果你更改了这将非常糟糕一个文件名或需要添加另一个文件,您必须在每个文件中更改它。

如果有人能告诉我它实际上是如何完成的,或者向我指出一个很棒的教程。

感谢您的宝贵时间 :)

【问题讨论】:

  • 对于正确的 URL,请查看 mod_rewrite。这可以使用 get vars 将 /my/page/something.html 之类的漂亮 url 转换为 /index.php。
  • 仅供参考,使用来自$_GET 的未经处理的用户数据,就像这样打开path traversal attacks。路径遍历攻击是一种极为常见的攻击类型,所有站点都应努力保护自己免受攻击。

标签: php html css structure directory


【解决方案1】:

我认为这对你来说是一个很好的起点,你可以研究像 Zend/CodeIgnitor/CakePHP/Symphony 等 MVC(模型/视图/控制器)如何处理视图和模板(我真的没有太多经验这些,所以我不能说他们是如何做到的)。

关于 URL,您可以使用 Apache 的 RewriteRule 来清理它们,因此您可以将 www.yoursite.com/abc 重定向到 www.yoursite.com/index.php?page=abc,而关于文件夹的示例,您可以将 URL www.yoursite.com/somefolder/somepage 重定向到 www.yoursite.com/index.php?page=somefolder/somepage 或 @ 987654327@.

在我工作的地方,我们使用自定义 MVC,其中我们有一个全局页眉和页脚文件,包含所有 CSS/JS 文件链接,以及将在每个页面上的任何 HTML,然后我们为各个页面包含单独的文件,而是包含 PHP 文件,我们包含 Smarty 文件来模板化我们的 HTML。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-29
    • 2011-10-10
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多