.htaccessでPHPのファイルアップロードサイズの上限値を変更
2022.02.5
PHPを使用して画像(動画・PDF等)をアップロードするフォームを作成した際に、ファイル…

アクセス解析をする際に、非常にお世話になっている「googleアナリティクス」
専用タグの設置してあるサイト内ページであれば計測が簡単なのだけれど、外部リンクには自社タグが設置できないため、仮想ページとリダイレクト処理を使用して計測できるようにした方法をメモ。
まず、GA4からのgoogleアナリティクスの仕様変更により、パス表示ではパラメータ形式のURLは個別ページとして表示してくれないため、ディレクトリ構成でのURLを生成する必要があります。
参考例はワードプレスを使用し、カスタムフィールド(target_url)に外部リンクのURLが設定しています。
計測したいサイト内ディレクトリ直下に計測用のディレクトリ「links」を作成。
その中に「.htaccess」と「index.php」を設置します。
RewriteEngine on
RewriteRule ^(.*)$ index.php [L]
<?php
require_once(__DIR__.'/../wp-blog-header.php');
$parse_url = parse_url($_SERVER["REQUEST_URI"]);
$segments = explode('/', trim($parse_url['path'], '/'));
$id = $segments[1];
if(!empty($id)){
$dt['id'] = preg_replace('/[^0-9]/', '', $id); //数字のみを対象
$url = esc_url(get_post_meta($dt['id'], 'target_url', true));
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<meta name="robots" content="noindex, nofollow">
<title>外部リンク|<?php echo get_the_title($dt['id']); ?></title>
<!-- Google tag (gtag.js) をここに記載-->
<meta http-equiv="refresh" content="0; URL=<?php echo($url); ?>">
</head>
<body>
</body>
</html>
phpでのリダイレクト処理では「header関数」を使用することが一般的ですが、その場合は計測タグが読み込めなくなるため、今回はメタリフレッシュを使用しています。
自然な遷移になるよう、リダイレクトまでの処理時間を「0秒」に設定していますが、遷移先のページの読み込みが遅い場合は一定時間、空のページが表示されてしまいます。
訪問者が戸惑わないよう「リダイレクト中」などの表記を加えても良いかもしれません。
<a href="/links/<?php echo get_the_ID(); ?>" target="_blank" rel="noreferrer noopener">外部リンク先名</a>
外部リンクを設置するページではリンクを仮想ページ(links)に向けます。
以上です。
尚、今回は外部リンク設定が1点でしたが、複数になる場合はリンクの記載に対象となるカスタムフィールドの値を追記し、受け取り側で判別して振り分けることも可能です。
<a href="/links/target_url/<?php echo get_the_ID(); ?>" target="_blank" rel="noreferrer noopener">外部リンク先名</a>
受け取り側の処理は下記を参考ください
<?php
require_once(__DIR__.'/../wp-blog-header.php');
$parse_url = parse_url($_SERVER["REQUEST_URI"]);
$segments = explode('/', trim($parse_url['path'], '/'));
$category = $segments[1];
$id = $segments[2];
if(!empty($category) && !empty($id)){
$dt['id'] = preg_replace('/[^0-9]/', '', $id); //数字のみを対象
$url = esc_url(get_post_meta($dt['id'], $category, true));
}
?>
以下省略

2022.02.5
PHPを使用して画像(動画・PDF等)をアップロードするフォームを作成した際に、ファイル…

2020.10.3
テキストエリア等で入力した文字の中にURLを含んでいた場合に、自動で認識してリンクタグを…

2024.03.30
外部ファイル(CSVファイル等)を読み込んでサイト内に表示する際に、保存時の文字コードが…

2020.12.5
メールフォームからメールを送信する際に、画像(ファイル)を添付できるようにしてほしいとの…

2023.12.2
ワードプレスの投稿のカテゴリー機能を、目的ごとに使い分けたいというご要望があった際に、カ…

2020.08.1
動画ファイルをCMS化して保存するときに、多くの場合はファイルパスをデータベース(MyS…

2022.09.24
パソコンやスマートフォンの戻るボタンを使って画面を戻す(ブラウザバックする)時があります…

2022.02.19
画像データ等をサーバーにアップロードする際、一点づつアップロードしても良いけれど、ファイ…

2020.08.15
フォームの入力値やURLのパラメータ等、文字列や数値を受け取る際に正規表現を利用してバリ…

2019.12.29
メールフォーム等での入力値チェック(バリデーション)。PHPの「preg_match」(…