php:view.php
<h1>hello world</h1>
php:index.php
require('view.php');
如果两个文件都在根mysite.com
如果我访问mysite.com/index.php
我应该得到' hello world '
如果我访问mysite.com/view.php
我应该没有显示任何内容。
我正在寻找一些.HTACCESS方法,但欢迎任何其他建议:)
结论:希望用户无法查看纯文本视图,只允许required
或get_file_contents()
读取文件。所以只在服务器内读取文件。
答案 0 :(得分:3)
处理此问题的最佳方法是让您的包含文件从不打算在Web根目录之外访问,从而无法通过浏览器访问它们。
即。你的文件结构是:
www/index.php
includes/view.php
您可以将PHP的include_path
设置为包含includes/
目录,这样您的包也不需要在其中明确显示路径。
答案 1 :(得分:2)
不要打印输出。使用输出数据创建一些变量(例如:$tmp
)并将其打印在index.php
答案 2 :(得分:0)
你可以做.htaccess的东西
<IfModule mod_rewrite.c>
Options +FollowSymLinks
Options -Indexes
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
</IfModule>
这不是你想要的,但我认为如果你把它与ceejay的答案结合起来,它应该有用