引き続いてなのでポイントはそちらの判断で。なしでもけっこうです。
確認の必要な事項がいくらかあると思います。
1 著作権表示を挿入したいページと挿入したくないページは、ファイル名やパスなどで区別可能でしょうか。これはかなり重要な点で、これでずいぶん、できるかできないかが変わってきます。
2 同じページについて挿入したい場合と挿入したくない場合と二通りあるのでしょうか、それとも、ひとつのファイルについては片方の場合だけでしょうか。
たとえばa.htmlというファイルがあったとして、このファイルがBというページの右フレームに表示されるときは挿入して、Cというページの下フレームのときは表示しない、というようなケースはあるのでしょうか。これがあるとないとでは、けっこう対処が異なります。
ファイルがパスなどで区別がつかず、しかも同一のファイルについても、フレームでの表示のされ方によって場合分けしないといけないとなると、かなり困難です。
パスやファイル名で挿入したいページを見分けることができ、しかも、同一のファイルについては、挿入するかしないかの片方だけならば、
LayoutIgnoreURI で、一つ一つ指定しなくても
たとえば、拡張子が.htmのファイルすべてなら、*.htmlと指定すればよいし、no*.htmlならnoで始まるファイル、というふうに指定できます。これで一発で指定できないということは、ファイル名やパスで区別できない、バラけてしまっているのでしょうか。
もしも著作権表示を表示したくないページに何かそのページ特有のタグが存在するのであれば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する方法も考えられます。
ページ特有のタグはとくにありません、フレームページ自体も多いのでまとめて書き換えたいのですが…
http://www.musc.edu/webserver/mod_layout.html#_1_22
Mod_Layout FAQ
mod_layout の FAQ にあるけど、LayoutIgnoreURI は正規表現使える(はず)。
規則的なファイル名を付けていれば楽できるかと。
個人的な意見を言わせてもらうと、Blog ツールや CMS を使うことを勧める。
mod_layout は、結局簡素なテンプレートシステムみたいなもんだからね。
ファイル名は友人・職場の人などによって、てんでバラバラなんです やはり手間が掛かりそうですね
原因は、サーバー側では、そのファイルがフレームの中身として呼ばれたのか、単体で呼ばれたのか知る方法はない、ということです。基本的にサーバー側にとっては区別はないんです。サーバー側は、そのファイルがリクエストされた、ということを知っているだけで、フレームの中かどうか、位置はどこか、という情報はもってません。
それを知っているのはブラウザだけなので、サーバー側がそれを知ろうとしたら、javascriptでブラウザに教えてもらうしかありません。
しかし、その場合でも、フレームごとにidをつけておかないと、ページの中のどのフレームか区別することはできません。つまり、あらかじめ、わかるようなフレームページ(<frameset>)を組んでおかないといけないわけです。今回、フレームページを修正しない、という前提だと、原則として無理なわけです。
というわけで私の苦し紛れの解決ですが、mod_layoutはあきらめて、サイト全体をひとつのフレームの中に入れてしまって、上フレームを一行くらいの小さいものにして、そこに著作権表示をするというのはどうでしょうか。この場合、難点は、外部サイトももしかするとこのフレームの中に入ってしまうかもしれないということです。
力任せの解決としては、すべてのページをcgiを通してproxyのようにして表示して著作権表示を付加するというのも考えられますが、この場合、フレームの動作のシミュレートとサイト内リンクの書き換えがかなり大変なのであくまで参考まで。
やはり、本来の解決としては、
1 フレーム内で表示を挿入しないページは、特定の名前のディレクトリに入れるか、特定のファイル名をつける。
2 もしくは、そういうファイルには<!--nodisplay-->のような特別なタグを入れておく。
のどちらかが、mod_layoutを使うのであれば本筋です。レンタルサービスのバナー広告のフレーム内非表示は原則としてどちらか、あるいは両方のパターンです。
今後ファイルが増加するようであれば、むしろそちらのほうが長期的には面倒が少ないかもしれません。
またCMSや認証つきのWIKIの利用も考慮するといいかもしれません。
やはりそうなりますか…orz
サーバの再構築でもしながら考えてみることにします
よい情報をありがとうございました
1はファイル名はばらばらです、パスとはファイルを置いている場所のパスでしょうか?でしたらuserごとにパスの末尾のみ違います
2は一つのファイルには片方のみです
Bというページの右フレームに表示されるときは挿入して、Cというページの下フレームのときは表示しないといったことはありません
バナーでなく文字というだけでよく見る無料の広告付きのレンタルサーバとやりたい事は同じなのですが