要限制访问 allow_url_fopen
,您可以使用以下方法:
在您的网站根目录下创建或编辑 .htaccess 文件,添加以下内容:
<FilesMatch "\.(php)$">
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/allowed_url_fopen\.php$
RewriteRule ^(.*)$ /restricted_access.php [L]
</IfModule>
</FilesMatch>
这将重写所有非允许的文件请求到名为 restricted_access.php
的文件。在这个文件中,您可以检查请求的来源并决定是否允许访问。例如:
<?php
$allowed_domains = ['example.com', 'example2.com'];
$current_domain = $_SERVER['HTTP_HOST'];
if (!in_array($current_domain, $allowed_domains)) {
header('HTTP/1.0 403 Forbidden');
echo 'Access denied';
exit();
}
// Your original code here
?>
这将仅允许来自 example.com
和 example2.com
的请求访问您的 PHP 文件。
在您的 PHP 文件中,您可以检查 $_SERVER['HTTP_HOST']
或 $_SERVER['HTTP_REFERER']
以确定请求的来源。例如:
<?php
$allowed_domains = ['example.com', 'example2.com'];
$current_domain = $_SERVER['HTTP_HOST'];
if (!in_array($current_domain, $allowed_domains)) {
header('HTTP/1.0 403 Forbidden');
echo 'Access denied';
exit();
}
// Your original code here
?>
这将仅允许来自 example.com
和 example2.com
的请求访问您的 PHP 文件。请注意,这种方法可能不是完全可靠的,因为 HTTP_REFERER 可以被伪造。