人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【使うことになった情報には1000ポイント送信いたします】Linuxでのmod_layoutについてなのですが 著作権表示の挿入をしているのですが フレームページだと すべてのフレーム内に表示が挿入されてしまいます フレーム内の中央だけや右側だけに表示するといった解決法を探しています 下記以外の方法があればよろしくお願いいたします

http://www.hatena.ne.jp/1132495643

●質問者: yoshi5231
●カテゴリ:ウェブ制作
✍キーワード:Linux mod_layout フレーム ポイント送信 著作権
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● jouno
●100ポイント

引き続いてなのでポイントはそちらの判断で。なしでもけっこうです。


確認の必要な事項がいくらかあると思います。


1 著作権表示を挿入したいページと挿入したくないページは、ファイル名やパスなどで区別可能でしょうか。これはかなり重要な点で、これでずいぶん、できるかできないかが変わってきます。


2 同じページについて挿入したい場合と挿入したくない場合と二通りあるのでしょうか、それとも、ひとつのファイルについては片方の場合だけでしょうか。


たとえばa.htmlというファイルがあったとして、このファイルがBというページの右フレームに表示されるときは挿入して、Cというページの下フレームのときは表示しない、というようなケースはあるのでしょうか。これがあるとないとでは、けっこう対処が異なります。


ファイルがパスなどで区別がつかず、しかも同一のファイルについても、フレームでの表示のされ方によって場合分けしないといけないとなると、かなり困難です。


パスやファイル名で挿入したいページを見分けることができ、しかも、同一のファイルについては、挿入するかしないかの片方だけならば、

LayoutIgnoreURI で、一つ一つ指定しなくても

たとえば、拡張子が.htmのファイルすべてなら、*.htmlと指定すればよいし、no*.htmlならnoで始まるファイル、というふうに指定できます。これで一発で指定できないということは、ファイル名やパスで区別できない、バラけてしまっているのでしょうか。

◎質問者からの返答

1はファイル名はばらばらです、パスとはファイルを置いている場所のパスでしょうか?でしたらuserごとにパスの末尾のみ違います

2は一つのファイルには片方のみです

Bというページの右フレームに表示されるときは挿入して、Cというページの下フレームのときは表示しないといったことはありません

バナーでなく文字というだけでよく見る無料の広告付きのレンタルサーバとやりたい事は同じなのですが


2 ● andi
●100ポイント

http://www.musc.edu/webserver/directives/LayoutIgnoreTag.html

もしも著作権表示を表示したくないページに何かそのページ特有のタグが存在するのであればmod_layoutの「LayoutIgnoreTag」を使えば可能です。


そうで無いのでしたらmod_layoutを使って実現する方法はちょっと分からないのでJavaScript/CSSを使用して著作権表示を見えなくする手段も考えました。

(前提としてフレーム内のページは多くともフレームページ自体は少ないと想定してます)


1.フレームページ

(※フレームページ自体の著作権表示はLayoutIgnoreTagで消す)

<html>

<head><title>フレームページ</title>

<script>

window.onload = function(){

this.a.document.getElementById(”copyright”).style.display=”none”;

};

</script>

</head>

<frameset cols=”150,*” id=”set”>

<frame src=”a.html” name=”a” id=”a”>

<frame src=”b.html” name=”b” id=”b”>

</frameset>

</html>


2.フレーム内に表示する著作権表示部(a.html/b.html)

abc<span id=”copyright”>著作権表示部</span>def


上記だとonloadまでの間に一瞬見えてしまうかもしれませんが、嫌な場合は逆にデフォルトでdisplay:noneにしておいて、onloadでdisplay:inline/blockする方法も考えられます。

◎質問者からの返答

ページ特有のタグはとくにありません、フレームページ自体も多いのでまとめて書き換えたいのですが…


3 ● kosuke2005
●60ポイント

http://www.musc.edu/webserver/mod_layout.html#_1_22

Mod_Layout FAQ

mod_layout の FAQ にあるけど、LayoutIgnoreURI は正規表現使える(はず)。

規則的なファイル名を付けていれば楽できるかと。


個人的な意見を言わせてもらうと、Blog ツールや CMS を使うことを勧める。

mod_layout は、結局簡素なテンプレートシステムみたいなもんだからね。

◎質問者からの返答

ファイル名は友人・職場の人などによって、てんでバラバラなんです やはり手間が掛かりそうですね


4 ● jouno
●300ポイント

原因は、サーバー側では、そのファイルがフレームの中身として呼ばれたのか、単体で呼ばれたのか知る方法はない、ということです。基本的にサーバー側にとっては区別はないんです。サーバー側は、そのファイルがリクエストされた、ということを知っているだけで、フレームの中かどうか、位置はどこか、という情報はもってません。


それを知っているのはブラウザだけなので、サーバー側がそれを知ろうとしたら、javascriptでブラウザに教えてもらうしかありません。


しかし、その場合でも、フレームごとにidをつけておかないと、ページの中のどのフレームか区別することはできません。つまり、あらかじめ、わかるようなフレームページ(<frameset>)を組んでおかないといけないわけです。今回、フレームページを修正しない、という前提だと、原則として無理なわけです。


というわけで私の苦し紛れの解決ですが、mod_layoutはあきらめて、サイト全体をひとつのフレームの中に入れてしまって、上フレームを一行くらいの小さいものにして、そこに著作権表示をするというのはどうでしょうか。この場合、難点は、外部サイトももしかするとこのフレームの中に入ってしまうかもしれないということです。


力任せの解決としては、すべてのページをcgiを通してproxyのようにして表示して著作権表示を付加するというのも考えられますが、この場合、フレームの動作のシミュレートとサイト内リンクの書き換えがかなり大変なのであくまで参考まで。


やはり、本来の解決としては、


1 フレーム内で表示を挿入しないページは、特定の名前のディレクトリに入れるか、特定のファイル名をつける。


2 もしくは、そういうファイルには<!--nodisplay-->のような特別なタグを入れておく。


のどちらかが、mod_layoutを使うのであれば本筋です。レンタルサービスのバナー広告のフレーム内非表示は原則としてどちらか、あるいは両方のパターンです。


今後ファイルが増加するようであれば、むしろそちらのほうが長期的には面倒が少ないかもしれません。


またCMSや認証つきのWIKIの利用も考慮するといいかもしれません。

◎質問者からの返答

やはりそうなりますか…orz

サーバの再構築でもしながら考えてみることにします

よい情報をありがとうございました

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ