现在的位置: 首页 > 综合 > 正文

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

2013年09月18日 ⁄ 综合 ⁄ 共 1145字 ⁄ 字号 评论关闭
在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" );
?>


抱歉!评论已关闭.