BLOGGER ftp公開廃止に伴う移行 その2 タグリスト

BLOGGER ftp公開廃止に伴う移行 その1の続きというか、タグリストを作るにあたって、大事な事は、BLOGGERの場合、

BLOGGER FTP公開サイトのラベルでの分類方法

に書いてあるとおりbase64_decodeで日本語変換しておかないと
キャシュされているリンクからのアクセスが途切れてしまいます。
例)44OA44Oh44O844K444OY44Ki44O8 → ダメージヘアー

変換書き出し用のsampleは以下の感じです。

<?php
$dir = '/var/www/~~/labels/';#ラベルのパス
if($handle = opendir($dir)){#ディレクトリハンドルを獲得
while(false !== $file = readdir($handle)){#ファイル名獲得
list($filename,$html) = split("\.", $file);#ファイル名と拡張子を分割
if($html!="html"){continue;}
$filename = str_replace("__", "/", $filename);#ファイル名にするため__を/に戻す

if (preg_match("/=([A-F0-9]{2})/",$filename)) {#quoted_printable_decodeでローマ字+日本語に変換
$labellist = quoted_printable_decode ($filename);
}elseif(mb_detect_encoding(base64_decode($filename)) == "UTF-8"){#encodingがUTF-8ならbase64_decodeで日本語変換
$labellist = base64_decode($filename) ;
}else{#ローマ字はそのまま表示
$labellist = $filename ;
}
$ar[$labellist] = "$file";
}
closedir($handle); #ディレクトリハンドルを閉じる
}
foreach( $ar as $key => $val ){$insertlog.="$key<>$val;";print"$key-->$val<br />";}

$pointer=fopen("./labellist.log", "w");#'w' 書き出しのみでオープンします。ファイルが存在しない場合には、 作成を試みます。
flock($pointer, LOCK_EX);#ファイルをロックします
fputs($pointer, $insertlog);#書込みです
flock($pointer, LOCK_UN);#ロックを解除します
fclose($pointer);#ファイルを閉じます
?>

とかで、変換テーブルを作っておいて、.htaccessで
RewriteRule ^labels/(.*)\.html$ /?labels=$1.html
として、飛ばしてリンク切れを防いだりしています。

BLOGGER プログリスト追加でbloggeのFTP公開サイトのアイコン表示


BLOGGERのカスタマイズでプログリストを追加したとき、

BLOGGERでのFTP公開サイトを取り込んだ場合のアイコン表示が当店の場合、

https://blog.peaks.jp/index.php/favicon.ico
と勝手に指定され無効なファイルとなってしまいます。

これの解決は、
.htaccessで
RedirectMatch ^/(.*)/favicon.ico /favicon.ico

https://blog.peaks.jp/index.php/favicon.ico へのアクセスが
リダイレクトされ下記のようになり
https://blog.peaks.jp/favicon.ico

めでたく表示されます。(画像のハサミアイコン)

画像盗難・・・

うちは店舗通販をやっていますけど、バッティングしている商材の商品画像がよく他店に使われたりします。
営利目的で使われる場合は多少なりとも加工した後があればほっとくのですが、そのまま使ってたりページをまるまる使われてたりするとちょっとムカッとします<`~´>

以前なんかホームページ丸ごと違うドメインで使われてたこともありますし・・・

そこで対策として、画像に店舗名を表記するように、.htaccessでRedirectMatchを使い画像の読み込み時に実ファイルを飛ばし屋号を書き込んだ画像を表示するように先日作ったPHP 画像に文字を追加を加工して使っています。

やったのは、.htaccessで

RedirectMatch 実在ファイル(.*) /order/DataFile/IMAGE$1
でファィルを飛ばし

<FilesMatch “^IMAGE$”>
ForceType application/x-httpd-php
</FilesMatch>
で、IMAGEを拡張子無しでphpで動くようにするだけです。

php PEAR(ペアー)のインストール xp + php5.2.5

ローカルでphpが作動する環境で、phpのフォルダーに

go-pear.bat
PEAR→ go-pear.phar が存在する場合、
(phpのインストール時にExtras→PEAR installを指定すると作られる)

go-pear.batが下記のようになっているので

@ECHO OFF
set PHP_BIN=php.exe
%PHP_BIN% -d output_buffering=0 PEAR\go-pear.phar
pause

下記のように書き換え

@ECHO OFF
set PHP_BIN=php.exe
%PHP_BIN% -d output_buffering=0 C:\PHP\PEAR\go-pear.phar
pause

(C:\・・・は環境に合わせる)
後はコマンドプロンプトから

C:\Documents and Settings\....>go-pear 

後はエンターし、出てくる1を選択してベースのフォルダーを指定する。
普通に

C:\Documents and Settings\....>cd c:\PHP

で移動したら、go-pear.batの修正は必要ないけど・・・

固まっている場合は、
php.iniの output_handler = mb_output_handlerを確認し コメントアウトするべし
;output_handler = mb_output_handler

エラーが出る場合は、windows配下のpear.iniをチエックする

PHP PATH_INFO式に変更の巻き

https://www.peaks.jp/shop/item/ はphpでお勧めの商品の情報を記載しているが、なんとなくグーグルにランクされやすいかなってもくろみで、これを静的なURLに変更してみる。

動的なurl https://www.peaks.jp/shop/item/?makerTOP=%83A%83%8A%83%7E%83m
静的なurl https://www.peaks.jp/shop/item/makerTOP/ARIMINO/

ベースは下記の式ぐらいかな後は、受け取り側で$_GET[‘makerTOP’]ってしてたのを$Mtopにかえたり、
リンク先を?makerTOP=%83A%83%8A%83%7E%83m ってゆうのを ./makerTOP/ARIMINO/って加工したりで大丈夫。

$PATH_INFO = $_SERVER['PATH_INFO'];
list(,$Mtop,$Mdat,$Ltop,$Ldat) = explode("/",$PATH_INFO);

$_SERVER[‘PATH_INFO’]は/から始まるからlistも,で一個目とばしてる

普通にすると、https://www.peaks.jp/shop/item.php/makerTOP/ARIMINO/
ってなるから拡張子外しの裏技!!
.htaccessで

<FilesMatch "^item$">
ForceType application/x-httpd-php
</FilesMatch>

ってして拡張子なしでもphpとして作動させるファイル名ももちろん拡張子なしでitemだけにしておくべし