在我的 apache 中,配置文件如下所示:
RewriteCond %{HTTP_REFERER} !^mysite.com [NC]
我构建了一个 iphone 和 ipad 应用程序,并在其中放置了一个 safari 浏览器。
如何允许应用程序的 Safari 浏览器(仅限我创建的应用程序)访问图像?
如果您使用的是 iOS UIWebView,这可能是一个解决方案:
您可以通过在应用启动时运行一次此代码来更改 WebView 发送的默认用户代理(这里我们将其更改为“UniqueAppUserAgent”)
NSDictionary *dictionnary = [NSDictionary dictionaryWithObjectsAndKeys:@"UniqueAppUserAgent", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionnary];
然后使用 %{HTTP_USER_AGENT} 作为你的条件
RewriteCond %{HTTP_USER_AGENT} UniqueAppUserAgent
如果我正确理解您正在尝试做什么,您想从您的应用程序中发送一个请求并指定一个 HTTP_REFERER 以便激活您的 apache 规则。
您可以通过将 HTTP 请求拆分到您的服务器并在您的应用程序内显示 HTML 来做到这一点。IE,
使用NSURLConnection
;从服务器中获取 HTML 你可以在网上找到很多使用它的例子,在这里我只想指出你可以为你的请求指定一个自定义标头,如下所示:
NSMutableURLRequest* request = [[[NSMutableURLRequest alloc] initWithURL:url] autorelease];
[request setValue:@"mySite.com" forHTTPHeaderField:@"HTTP_REFERER"];
一次,您从请求中获取 HTML,然后使用以下命令将其加载到 UIWebView 中 - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL
:
[webView loadHTMLString:myHtml baseURL:nil];
如果您提供您拥有的代码,无论如何,它会更容易提供帮助。