※ ChatGPTを利用し、要約された質問です(原文:モバイルサイトのxhtmlでPHPを動かすときの.htaccess)
モバイルサイトのxhtmlでPHPを動かす方法と注意点
このQ&Aのポイント
モバイルサイトでPHPを動かすためには、.htaccessファイルに適切な設定を追加する必要があります。
AddType application/x-httpd-php .htmlを.htaccessに追加し、PHPのコンテンツを記述します。
しかし、.htaccessではAddType application/x-httpd-php .htmlだけ記述し、HTTPヘッダでMIMEタイプを指定するためにPHPにて、header()関数で指定する必要があります。
モバイルサイトのxhtmlでPHPを動かすときの.htaccess
ご質問です。
モバイルサイトで、ドコモの対応のために「.htaccess」で「AddType application/xhtml+xml .htm .html」を設定していました。
問題なく稼動していましたが、アクセス解析のために「PHP」を動かせるようにする必要がでたため、xhtml内で「<?php print "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>"; ?>」を記述し、「.htaccess」に「AddType application/x-httpd-php .html」を追加しました。
「.htaccess」には下記のように記述されています。
AddType application/x-httpd-php .html
AddType application/xhtml+xml .htm .html
しかしこれでは、「PHP」がうまく動かず、
AddType application/xhtml+xml .htm .html
AddType application/x-httpd-php .html
の順で記述すると「xhtml」がおかしくなります。
調べていると「.htaccessではAddType application/x-httpd-php .htmlだけ記述し、HTTPヘッダでMIMEタイプを指定するためにPHPにて、header()関数で指定する」とありました。↓
header("Content-type: application/xhtml+xml" );
しかし、どこにどう記述してよいのかわからないでいます。
動かしたい「PHP」の内容は以下の通りです。
<?php
function rt_tag($aqid){
$ref = getenv('HTTP_REFERER');
$ref = urlencode($ref);
$my_url = urlencode("//".getenv('SERVER_NAME').getenv('SCRIPT_NAME'));
if (!empty($my_url)) $rt_param[] = "/2=$my_url";
if (!empty($ref)) $rt_param[] = "/4=$ref";
$tag = "<img src=\"http://t7.aqtracker.com/cgi-bin/asp/tagx/h/$aqid";
foreach ($rt_param as $val) $tag .= $val;
$tag .= "/blank.gif?guid=on\">";
echo $tag;
}
$_aqid = "5T555ELHERSGN664E86A";
rt_tag($_aqid);
?>
どう記述を追加すればよいのか教えてくださいますか?
またこれでやりたいことはできるのでしょうか?
よろしくお願い致します。
補足
ありがとうございました。 その後数日の間、検証してみましたが問題なく稼動しているようです。 ちなみに「body」タグのすぐ下に <?php header("Content-type: application/xhtml+xml" ); ?> としておいて、そこからXHTMLでコンテンツを組み「/body」の直前の「div」 タグの中に <?php function rt_tag($aqid){ $ref = getenv('HTTP_REFERER'); $ref = urlencode($ref); $my_url = urlencode("//".getenv('SERVER_NAME').getenv('SCRIPT_NAME')); if (!empty($my_url)) $rt_param[] = "/2=$my_url"; if (!empty($ref)) $rt_param[] = "/4=$ref"; $tag = "<img src=\"http://t7.aqtracker.com/cgi-bin/asp/tagx/h/$aqid"; foreach ($rt_param as $val) $tag .= $val; $tag .= "/blank.gif?guid=on\">"; echo $tag; } $_aqid = "5T555ELHERSGN664E86A"; rt_tag($_aqid); ?> <?php $UH2url = 'http://b01.ugo2.jp/?u=5015024&h=6b8f46&ut=2&... $UH2url .= urlencode(isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'').'|Az|'.(int)($_SERVER['SERVER_PORT']); $UH2url .= '|'.urlencode($_SERVER['HTTP_HOST']).'|'.urlencode($_SERVER['REQUEST_URI']); $UH2url .= '|H|&ch=SJIS&sb='.urlencode('[ドイツ式フットケアサロンのボディキューブ]'); print '<img src="'.$UH2url.'" alt="携帯アクセス解析" width="1" height="1" border="0" />'; ?> とふたつ「PHP」のプログラムを入れましたがアクセス解析は問題なく動いています。 こういったやり方は問題ないのでしょうか? 稼動しているとはいえちょっと心配です。 他にいい方法があれば教えていただけますでしょうか? よろしくお願い致します。