所有页面都通过索引页面进行解析,但如果通过索引页面解析页面,则不会解析PHP代码。并在页面源代码中显示所有的PHP代码。我使用了.htaccess文件,代码如下:
# Use PHP5.4 as default
AddHandler application/x-httpd-php54 .php
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.org [NC]
RewriteRule ^(.*)$ http://www.domain.org/$1 [R=301,NC]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)$ /index.php/$1 [R,L]
Order allow,deny
Allow from all
<Files 403.shtml>
order allow,deny
allow from all
</Files>
从索引页面中的函数获取所有文件内容。功能是:
public function getPageContent()
{
$html = implode('', file($this->_ROOT.$this->getPage()));
echo $html;
}
答案 0 :(得分:1)
发生的事情是您只是请求文件的内容。
file()
获取该文件内部的所有内容,并以纯文本形式返回。您应该在index.php中包含所请求的页面,例如:
请求:home.php -> index.php?p=home.php
.htaccess
RewriteRule ^(.*)$ /index.php?p=$1 [R,L]
index.php
<?php
/* Do some checks to secure the input. */
include($_GET['p']);
?>