如何通过代码访问网站页面

时间:2016-09-13 06:49:03

标签: php html

很难解释,如果有人有更好的头衔,那就做我的客人..

基本上我创建了一个5页的网站。 的

1) index.html
2) page.html
3) footer.html
4) menu.html
5) contact.html

的 为了访问页面,您必须在域的末尾键入页面名称(我敢打赌,您知道这一点......)

I wanted to access the pages with a code..
for example -> mywebsite.com\?page=contact

我该怎么做?

亲切的问候, KOBI。

2 个答案:

答案 0 :(得分:1)

为什么不使用以下代码制作index.php

<?php
  include($_GET['page'].'.html');
?>

结果将是:

  • 调用mywebsite.com/?page=contact会打开mywebsite.com/index.php?page=contact,因为这是默认
  • 网址将保留mywebsite.com/?page=contact
  • 脚本加载文件contact.html并显示

答案 1 :(得分:1)

只要您不指定任何Web服务器,您就需要配置任何Web服务器来查找名为index.php的文件。自20世纪90年代初以来,这一直是所有Web服务器的标准功能。在Apache中,您将使用DirectoryIndex指令;这就是我的样子:

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

然后,在这样的index.php中编写PHP代码以充当路由器。您应该查看Variables From External Sources并了解$_GET

然而,这可能不是最好的布局。友情网址已存在多年:

http://example.com/contact

...它再次主要是一个Web服务器功能。在Apache中,您将使用mod_rewrite模块。这是一些PHP框架使用的示例规则:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

请求的路径可以从$_SERVER['REQUEST_URI']解析出来。

一旦你把手放在index.php文件中,就可以使用很多设计模式(现代框架经常使用第三方routertemplate engine)但如果你要从头开始学习,只想从静态HTML中快速完成某些事情,你可以使用switch语句的组合(创建路由白名单)和readfile()将每个文件注入到输出。 (请注意,PHP include构造系列将把文件作为PHP代码处理,这不是你想要的。)

<?php
define('INC_PATH', __DIR__ . '/../wherever/includes/are');

switch ($_GET['page']) {
    case 'contact':
    case 'help':
    case 'whatever':
        $page = $_GET['page'];
        break;
    default:
        $page = 'error';
}
readfile(INC_PATH . '/index.html');
readfile(INC_PATH . '/page.html');
readfile(INC_PATH . '/footer.html');
readfile(INC_PATH . '/menu.html');
readfile(INC_PATH . "/$page.html");