php curl - 需要使用curl提供对受保护目录的访问

时间:2010-12-08 23:54:46

标签: php .htaccess curl

我在Apache上托管了一个包含一些受保护内容的站点。我想为在其他应用程序中进行身份验证的用户提供对此受保护内容的访问权限。使用htaccess和htpasswd保护内容。

我想使用curl设置用户名和密码,然后将用户重定向到受保护的文件夹。如果受保护的内容是单个文件,我可以轻松地做到这一点,但我的解决方案似乎只适用于一个页面。用户单击链接并尝试访问其他页面后,会话就会丢失。目录中有数百个页面。

以下是我正在使用的代码:

$ch=curl_init(); 
curl_setopt($ch, CURLOPT_URL,'http://domain.com/protected_folder/'); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "username:password");  
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_exec($ch); 
curl_close($ch);

结果有两个问题:

  1. 没有完全重定向,因此点击的任何链接都会引用回到php文件所在的文件夹,而不是受保护的文件夹。地址栏仍然显示php脚本的路径。
  2. 会话立即丢失。使用登录框提示访问受保护文件夹中的任何资源。
  3. 非常感谢任何关于如何解决这两个问题的想法。

1 个答案:

答案 0 :(得分:0)

您是否已使用htaccess身份验证?如果您通过PHP使用身份验证,则可以获得更大的灵活性。

http://php.net/manual/en/features.http-auth.php