简单隐藏php,及自定义路由

来源:互联网 发布:阳光网络logo图片素材 编辑:程序博客网 时间:2024/05/22 03:53
在apache的http.conf中配置

# 使PHP看上去像其它的编程语言,用php解析以下扩展名的文件
AddType application/x-httpd-php .asp .py .pl .html .htm

或者设置php为默认文件
http.conf-apache
# Set default file type to PHP
DefaultType application/x-httpd-php
然后在php.ini-php中配置来隐藏php后缀
expose_php = Off
并且php文件也写为无后缀文件
你的url就是这样的www.domain.com/test?key=value

上面的AddType配置后的url则长的像这样www.domain.com/test.html?key=value

还有一种方法来代码中用index.php隐藏php后缀,并路由到对应的模块,原理是截获$_SERVER[QUERT_STRING]并对其进行解析处理,
然后包含相对应的模块
产生的结果像这样
www.domain.com/?article/id/54/type/news&cat=2
原始url应该是这样的
www.domain.com/modul_directory/article.php?id=54&type=news&cat=2


index.php
--------------
<?php

// PARSING QUERY STRING
$QS=explode("&",$_SERVER['QUERY_STRING']);
$QS=explode('/',$QS[0]);

// IF Modul is Undefined set it to index
if (!$QS[0]) $MODUL='index';
else
$MODUL=strtolower($QS[0]);

// WE can make a Variable $_QUERY
// for alternative _GET
for ($i=1;$i<count($QS);$i+=2)
{
  
$_QUERY[$NVAR]=$NVAR=$QS[$i];
   $
$NVAR=$QS[$i+1];
}

// Check the Modul is exists?
if (!file_exists("modul_directory/{$MODUL}.php"))
  
$MODUL="index";

#### THIS IS EXAMPLE TO
IMPLEMENTATION THE SCRIPT
// Load The Template
include("template.php");
// Load The Module
include("modul_directory/{$MODUL}.php");
// Load The
Footer
include("footer.php");
?>


原创粉丝点击