2012-02-28 12 views
0

私はウェブサイトを持っており、私のインデックスページに埋め込まれるファイルがある場所にサブフォルダがあります。しかし、私はそのサブフォルダを直接見ることができます。.htaccess:サブディレクトリからiframeをルートディレクトリからのみ表示できるようにする

So.私は.htaccessファイル持っ

<iframe src="http://mysite.com/opt2/" id="shopIframe" name="shopIframe" onload="alert('a');" frameborder="0" height="90%" width="100%" scrolling="auto"></iframe> 

と私はIFRAMEでのindex.phpとサブフォルダOPT2を持っている:

RewriteEngine on 
RewriteCond %{HTTP_REFERER} http://mysite.com/opt2/ [NC] 
RewriteRule /*$ http://mysite.com/index.php [R=302,L] 

をということで、私はIFRAMEがあるhttp://mysite.com/index.phpを持っています.htaccesで可能ですか?

+1

あなたは、おそらくそれは奇妙な行動ではなく動作しますserverfaultのか、ウェブマスター –

答えて

1

リファラーはhttp://mysite.com/index.phpであり、http://mysite.com/opt2/ではありません。

また、一部のファイアウォールソフトウェア、プロキシなどは参照元ヘッダーを削除するので、まず参照者が利用可能かどうかを確認することをお勧めします。

RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://mysite\.com/ [NC] 
RewriteRule ^opt2/ http://mysite.com/index.php [R=302,L] 

加え

<script> 
if(self == top) 
    location.href='/index.php'; 
</script> 
+0

でより良い運を持っています。 私はmysite.com/opt2/を開いた場合 - コンテンツを表示しますが、そうではありませんが、私がF5を押した場合、私はルートディレクトリにリダイレクトされます –

+0

あなたがそれを枠に入れたい場合は、 JSはそれを行う。上記の編集を参照してください。リファラーヘッダーがブロックされているかどうかわからないので、refererヘッダーを使用することも、URLが直接ロードされるために存在しないこともあります。 – Gerben

+0

最終的には動作します。ありがとう。 –

関連する問題