質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MkDocs

MkDocsとは、Markdown形式で記述されたドキュメントをWebサイトに生成する静的サイトジェネレーター。Pythonで開発されており、さまざまなテーマがあります。また、ドキュメントを記述しながらプレビューが可能です。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

0回答

303閲覧

mkdocsでアクセスログを取得したい

hatsuzo

総合スコア56

MkDocs

MkDocsとは、Markdown形式で記述されたドキュメントをWebサイトに生成する静的サイトジェネレーター。Pythonで開発されており、さまざまなテーマがあります。また、ドキュメントを記述しながらプレビューが可能です。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2022/05/17 04:35

お世話になっております。

Webサイトの各ページを開いた時に接続元のIPアドレスと開いたページ名を取得したいと思っています。そのようなCGIはフリーで公開されていて、以前にホームページに組み込んだことがあるのですが、今回組み込もうとしているページがmkdocという静的サイトジェネレータで作成したhtmlなので、各ページにスクリプトを組み込むことが難しい(テンプレートに手を入れればできるのでしょうが標準テンプレートに手を入れるのは気が進みません)ので簡便的な方法はないかと考えています。

テンプレートは難しいので、サイト単位のCSSに手を入れることによって、
必ず生成されるdivタグの適当なクラスにbackground-imageを返すスクリプトを呼び出すことを思いついて、組み込んでみました。

CSS

1// custom.css 2.md-header__title { 3 background-image: url("http://***/mklog_put.php"); 4}

php

1// mklog_put.php 2$motourl = $_SERVER['HTTP_REFERER']; 3$today = date("Y-m-d H:i:s"); 4$ip_address = $_SERVER['REMOTE_ADDR']; 5file_put_contents("./log/weblog.txt", $today.",".$ip_address.",".$motourl."\n", FILE_APPEND);

とりあえず、IPアドレスを取得することは出来ましたが、呼出元ページ(HTTP_REFERER)は、呼出元のページ本体ではなく、上記のCSSファイルになってしまいます。

当然の結果なのかもしれませんが、CSSでなく、それを使っているページ名を取得するには、ページ自体からスクリプトを呼ばない限りは無理でしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

madoka-t

2022/05/17 05:13

mkdocsをアップロードしているサーバのアクセスログは取得できないということでしょうか? ともあれ、確かにアクセスされたファイル名が知りたければPHPスクリプトをHTMLから呼び出す必要がありますね。 mkdocsのテーマに含まれるbase.htmlあたりに追記することになると思います。 もしくはGoogle Analyticsに丸投げするのも手かもしれませんね。
Lhankor_Mhy

2022/05/17 08:33

JavaScriptも変更できない感じですか?
hatsuzo

2022/05/26 02:29

madoka-tさん Lhankor_Mhyさん コメントありがとうございました。 テーマのテンプレートのソースであれば、Javascriptを組み込むことはできるかもしれません。 リソース内で解決しようとすれば、そういうことになるんでしょうね。 アクセスログを取ることは考えていませんでした。 使っているのが、WindowsServerでIISなのですが、IISでもアクセスログが取れるのですね。 調べてみようと思います。 どうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問