3

私のApacheでは、構成ファイルは次のようになります。

RewriteCond %{HTTP_REFERER} !^mysite.com [NC]

iPhone と iPad のアプリケーションを作成し、その中にサファリ ブラウザを配置しました。

アプリケーションの Safari ブラウザ (私が作成したアプリケーションのみ) が画像にアクセスできるようにするにはどうすればよいですか?

4

2 に答える 2

2

iOS UIWebView を使用している場合、これが解決策になる可能性があります。

アプリの起動時にこのコードを 1 回実行することで、WebView によって送信されるデフォルトのユーザー エージェント (ここでは "UniqueAppUserAgent" に変更しています) を変更します。

NSDictionary *dictionnary = [NSDictionary dictionaryWithObjectsAndKeys:@"UniqueAppUserAgent", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionnary];  

次に、条件として %{HTTP_USER_AGENT} を使用します

RewriteCond %{HTTP_USER_AGENT} UniqueAppUserAgent
于 2012-05-31T23:36:57.997 に答える
2

あなたがしようとしていることを正しく理解している場合は、アプリからリクエストを送信し、HTTP_REFERER を指定して、Apache ルールが有効になるようにしてください。

これを行うには、HTTP 要求をサーバーに分割し、アプリ内で HTML を表示します。すなわち、

  1. NSURLConnection;を使用して、サーバーから HTML を取得します。ウェブ上でそれを使用する多くの例を見つけることができます。ここでは、次のようにリクエストのカスタム ヘッダーを指定できることを指摘したいと思います。

     NSMutableURLRequest* request = [[[NSMutableURLRequest alloc] initWithURL:url] autorelease];
     [request setValue:@"mySite.com" forHTTPHeaderField:@"HTTP_REFERER"];
    
  2. リクエストからHTMLを取得したら、次を使用してUIWebViewにロードします - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL

    [webView loadHTMLString:myHtml baseURL:nil];
    

いずれにせよ、あなたが持っているコードを提供すれば、助けやすくなります。

于 2012-06-02T08:06:10.123 に答える