我想禁止用户直接访问我网站上的PHP脚本。
应该从网站上的其他脚本访问此脚本。
例如," somepage.php"可以拨打" upload.php",但不允许用户输入 mywebsite.com/upload.php 。不幸的是,我无法将脚本移动到特定文件夹。
答案 0 :(得分:1)
好的,你可以用以下方法做到这一点:
<Files yourfile.inc.php>
order allow,deny
deny from all
</Files>
但是,我仍然建议您在PHP中执行此操作,以便将其添加到包含文件中:
if ( !defined( 'YOURPROGRAM' ) )
{
echo <<<EOT
You cannot display this file
EOT;
exit( 1 );
}
然后在您希望有权访问此文件的文件中,您需要执行以下操作:
define( 'YOURPROGRAM', 1 );
这样,您的代码可以在多个平台上共享,包括ngynx等。
参考文献:http://htpasswdgenerator.com/apache/htaccess.html和MediaWiki代码。
答案 1 :(得分:0)
根据我在其他答案中的评论,很明显这个问题实际上有些不同。由于我觉得其他答案与最初提出的问题有关,我不想编辑那个,而是添加这个额外的答案。
这个将回答:如何阻止其他网站深度链接我的iframe中显示的网页?
为了正确地做到这一点,可以使用PHP Sessions。然后,在您的主页面中,您将启动会话,如果会话实际上已启动,则该用户将只能查看“内部”页面。
假设您有两个页面:index.php和inner.php。您将把以下内容放在index.php的开头:
if (session_status() !== PHP_SESSION_ACTIVE) session_start();
在inner.php中你将拥有:
if (session_status() !== PHP_SESSION_ACTIVE) die("Deep linking detected");
你绝对不能从htaccess或页面代码之外的任何其他地方做这样的事情。