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


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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/11/22 08:12:21
  • 終了:--

回答(4件)

id:jouno No.1

jouno回答回数280ベストアンサー獲得回数02005/11/22 08:57:42

ポイント100pt

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


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


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


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


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


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


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

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

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

id:yoshi5231

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

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

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

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

2005/11/22 09:08:50
id:andi No.2

andi回答回数448ベストアンサー獲得回数02005/11/22 10:24:17

ポイント100pt

もしも著作権表示を表示したくないページに何かそのページ特有のタグが存在するのであれば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する方法も考えられます。

id:yoshi5231

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

2005/11/22 12:07:28
id:kosuke2005 No.3

kosuke2005回答回数1351ベストアンサー獲得回数72005/11/22 11:17:20

ポイント60pt

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

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


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

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

id:yoshi5231

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

2005/11/22 12:26:49
id:jouno No.4

jouno回答回数280ベストアンサー獲得回数02005/11/22 14:19:26

ポイント300pt

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


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


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


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


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


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


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


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


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


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


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

id:yoshi5231

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

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

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

2005/11/22 14:55:17

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません