No.1
- 回答日時:
それはHTMLだけでは出来ません。
動的にHPの内容を変化させる事の出来るプログラム言語を利用して可能となります。
Perl/CGI、PHP、JSPといった言語がそれにあたります。
それらの言語は、サーバ側で処理を行い、
結果をクライアントに返すという、サーバサイドな言語です。
(HTMLやJavaScriptはクライアントサイドであり、
書かれた内容を動的に変更する事は出来ない)
それら動的言語に持つセッションという管理機能を利用して制御を行います。
トップページから来た時はセッション情報を持っており、
直リンクされた時はセッション情報を持ってない状態になります。というより、そういう作りにします。
つまり、セッション情報がない時、強制的にトップページへ飛ばす、という処理が可能になります。
No.2
- 回答日時:
簡単なものだとJavaScriptを使用しています。
history.go("http://example.com/");
とページの頭の方で記述し、
一定の条件が満たされていなければトップに戻す
といった事をしているのかと。
No.3ベストアンサー
- 回答日時:
>フレーム中にある
この条件でなら JavaScript でもある程度は出来ます。
JavaScript で親ファイルのアドレスを調べ
想定外のアドレスならトップページへ戻る様に記述すれば良いだけです。
JavaScript が無効の場合はどうするか。
JavaScript が有効である事を必須とするならば無効の時にリダイレクトさせればよい訳で・・・。
noscript に meta の Refresh を記述。
まぁブラウザに JavaScript を無効のリダイレクトも無効とされるとお手上げですが、
直リンク対策が目的ならある程度使えるかも・・・。
尚、閲覧者の操作への対策だったり JavaScript が無効でもフレーム内での適切な閲覧なら表示したいなどという場合は、サーバ側で(リンク元を取得するなど)なんらかの操作をするしかないでしょう。
ありがとうございます。試しに当該のサイトにてJavascriptを無効にしてみると、リダイレクトせず、今までとは違った反応を示しました。
全てがこれで解決した訳ではなさそうですが、すごく前進した気がします。
Javascriptのスキルがまだまだ拙いので、どれぐらい時間がかかるか分かりませんが、
色々試してみたいと思います。
ありがとうござまいした!
No.4
- 回答日時:
リファラ見て、403エラーになるようにして・・・
403のメッセージのかわりに、所定のページを表示させるだけで可能。(サーバの設定で、ユーザのディレクトリ内で .htaccess が使えるという条件がありますが。)
その関係のディレクトリ内に .htaccess 置いて、ここに
<Files ~ 該当する被呼ファイルの条件(正規表現) >
SetEnvIf Referer "想定される呼出し元ファイル" ref_ok
order deny,allow
deny from all
allow from env=ref_ok
</Files>
ErrorDocument 403 飛ばす先のページのURL
を置けば済みます。SetEnvIf の行は複数書けます。
応用として、特定のブラウザ等だけ排除/許可したり、特定のアドレスからのアクセスだけ排除/許可したりするのにも利用できます。
私の所では、許可した所以外からの直リンク禁止したり、特定のサイトからの訪問者にのみ「お知らせ」を見せるのに使用しています。
課題は、Refererを返さない設定のユーザの判断。上記であれば、返さない者はすべて禁止されます。リファラ無しは許可するならば、許可条件に "^$" を追加してください。
この回答への補足
なるほど、こちらも簡単で確実そうですね。
.htaccessは使える仕様なので、一度試してみて、お礼に戻ります。
ありがとうございました!すごい!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) httpsでsなし削除 2 2022/06/10 08:02
- SEO googleサーチコンソールでの重複ページ(ダブルスラッシュ) 3 2023/06/12 15:00
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- HTML・CSS Dreamweaver のテンプレートでの相対パスの設定について 2 2023/06/13 17:28
- オープンソース AWSドメイン名でApacheテスト・ページを表示させる方法を教えて下さい。 1 2023/04/26 15:59
- ドメイン・サーバー・クラウドサービス 自作サイトをサーバーにアップロードしたのですが… 2 2022/11/08 18:12
- Chrome(クローム) Chromeのアドレスバーに履歴等を表示させないようにしたい 2 2022/09/08 14:20
- その他(パソコン・スマホ・電化製品) ノートに貼られた書類のスキャン方法に関する質問 家族の書類をデータ化して整理しています。 その際にS 3 2023/04/07 13:49
- その他(インターネット接続・インフラ) ブラウザにIPアドレス入力した時 1 2022/06/16 19:08
- SEO 検索エンジン反映遅い 1 2022/06/04 07:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大文字はできるだけ使わない方...
-
ASPページを開くとユーザー名と...
-
Thunderbird 振り分けされなく...
-
Tera Termでのコマンド流し込み...
-
ブラウザにIPアドレスを直打ち...
-
【マクロ】エクセルにかいてあ...
-
元のフォルダに矢印キーで帰りたい
-
C#でCSVファイルをリストビュー...
-
フォルダのサムネイル画像
-
2010でShiftキーを使っても自動...
-
JP1で月末以外で毎週月曜日のジ...
-
xcopyバッチを管理者として実行...
-
NetBTエラーとbrowserエラーが多発
-
batファイルの実行が1行目のみ...
-
ディレクトリ数のみを取得する...
-
icaclsの読み方
-
サブフォルダ内のファイルを全...
-
【Ciscoコマンド】interface As...
-
大量のフォルダへのハイパーリ...
-
excel VBA 部分一致の名前をパ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大文字はできるだけ使わない方...
-
FFFTPを使ったアップロードがで...
-
Apacheで特定のファイルのみア...
-
C++でWEBブラウザを作成する
-
HTMLで大文字と小文字を区別し...
-
存在しないページを指定してもT...
-
シンボリックリンクでドキュメ...
-
ApacheとPHPの設定で
-
BASIC認証でダイアログが開かない
-
ちょっとした事なんですが・・...
-
XAMPPのIPアドレスについて
-
ASPページを開くとユーザー名と...
-
HTTP TRACEメソッドについて
-
ルート相対パス
-
public_htmlは必要でしょうか?
-
「メンテナンス中」と表示するには
-
Thunderbird 振り分けされなく...
-
Tera Termでのコマンド流し込み...
-
フォルダのサムネイル画像
-
【マクロ】エクセルにかいてあ...
おすすめ情報