私のApacheでは、構成ファイルは次のようになります。
RewriteCond %{HTTP_REFERER} !^mysite.com [NC]
iPhone と iPad のアプリケーションを作成し、その中にサファリ ブラウザを配置しました。
アプリケーションの Safari ブラウザ (私が作成したアプリケーションのみ) が画像にアクセスできるようにするにはどうすればよいですか?
iOS UIWebView を使用している場合、これが解決策になる可能性があります。
アプリの起動時にこのコードを 1 回実行することで、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 を表示します。すなわち、
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];
いずれにせよ、あなたが持っているコードを提供すれば、助けやすくなります。