.htaccess」タグアーカイブ

.htaccessでのdirectory指定について

.htaccessの設定について、噂と現実でどうにもわからないことがあるのでメモ。
解決したら追記する所存。

条件

仮想環境として下記の状態。
サイトURL:http://aaa.com
ルート:/var/aaa
制限対象directory:/var/aaa/bbb

制限対象のdirectoryだけをアクセス拒否にしたい。
『.htaccess』はルートに1つだけ置き、そこで全てを制御したい。(管理が手間だから一元化したい)
※本音複数directory指定したかったんだけど…
続きを読む

携帯からのアクセスだけリダイレクトさせる

単純に『携帯からと思われるアクセス』だけ、リダイレクトかけたいとする。

例えば、
PCページが『http://aaa.bbb.com/pc/aaa.html』として
携帯なら『http://aaa.bbb.com/mobile/aaa.html』に移動したいというような場合だ。

IPアドレスで仕分るのが一番いいんだけど、
機種増える度に追加したり、
DoCoMoの2.0ブラウザなんて変更しよるから管理するのタルイし
公式化や、会員制とかにしなくていいなら
『USER AGENT』で判断するのをオススメする。
※mod_rewrite必須

※USER AGENTについては、過去記事『USER AGENTメモ』参照のこと
続きを読む

携帯用画像転送不可設定用

※こちらガラケーやフューチャーフォンと言われるものを対象とした記事です

DoCoMo

Multi Comment Editorとかで、画像データに『copy="NO"』を入れてやればOK

au

Multi Comment Editorとかで、画像データに『kddi_copyright=on』を入れてやればOK

Softbank

簡単なのは
『.jpg』を『.jpz』に、『.png』を『.pnz』にする。
でもキャリア毎にイチイチ作るのメンドいし、GIFは無理。
「保存」はできるけど、外部送信は不可。
外部メディアへの転送は、C型端末(Jphone)では不可だけど、P型(vodafone)・3G(Softbank)端末ではできてしまうとか。

そこはもっとしっかり作ろうよ…というところ。

だから.htaccessとかで画像のヘッダーに

Header set x-jphone-copyright no-store
Header append x-jphone-copyright no-transfer
Header append x-jphone-copyright no-peripheral

とか書く方を勧める。
※Apacheの「mod_headers」モジュールが必要らしい

因みにC型端末(J-Phone)は非対応!だけどまぁ、6KB程度しか表示出来ない下位端末が画像を保存できるとは思わないな…

3キャリア全てで画像転送不可設定

続きを読む

wordpressでmemory sizeエラー

ダッシュボードで外部から読み込むニュース的なものを読む際に

# Fatal error: Allowed memory size of XXXX bytes exhausted (tried to allocate XXXX bytes)

てエラーが出ることがある。

開発環境だけだから大して気にしていなかったのだけど、
どうにもメモリが足りてないらしい。

SQLiteだからの可能性が高いから、皆が足りないワケではないと思う。

.htaccess

php_value memory_limit 100M

回線次第かもしれないけど40でもエラーが出たので、ちょっと大きめ。

php.iniで設定してもいいけど、.htaccessのが他に影響を及ぼさなくていい、と思う。

.htaccessからスパム防止

.htaccessでスパムが多い海外を塞いでやりました。

#イギリス・オランダ・ベルギー・アメリカ
deny from 194.8.74
deny from 194.8.75
deny from 212.117.176
deny from 66.197.241
deny from 94.75.221

deny from 66.197.167.99
deny from 94.24.166.202

『194.8.74.●●』を指定する場合、
『deny from 194.8.74.X』でなくて『deny from 194.8.74』
が.htaccessでは正しい様子。

『ソ』Shift-jisでformの文字化け

shift-jisでform作成して、即MySQLとかDBに入れようとすると、文字化けたまま登録ささる。

文字化けの仕組み

何故文字化けが起きるかっていうと、
PHPでマルチバイト文字の誤認識をしてるからなのね。

PHPは親切にもformで送るとき、「"」「'」「\」みたいなんを、エスケープ文字『\』つけて「\"」「\'」「\\」として送ってくれる。
で、受取ったら今度は「"」「'」「\」に戻すために、『\』を自動的に消してくれる。

消してくれるのはいいんだけど、残念ながら通常的にはshift-jisの『マルチバイト』を考えてなかったのだ。
続きを読む

[wp×SQLite]アップデート

SQLiteプラグインだけではまともに動いてくれないため、
内部的にも色々書き換えてしまったwordpress。

それをバージョンUPするのは容易じゃない。
自動では巧く行かないし、手動でもちょっとメンドクサイ。
この状態での一番カンタンなバージョンUPの仕方。

バージョンUPする際には
ちょっと使えなくなる時間が出来るから.htaccessとかで
メンテナンスページにでも飛ばした方がいいかも。

説明のための名前規定

wpA … 今使用してるwordpress
wpB … downloadした新しいwordpressを解凍したもの
続きを読む

PHP4からPHP5の際、問題発生時の対処方法

主に問題となるのは以下3点(※参考

requireで問題なかったところがrequire_onceじゃないとエラーになる

全部ではない。エラーが出たとこだけ直せば問題ない様子。

オブジェクトの代入の扱いが変わった

PHP4まではオブジェクトのコピーはディープコピーを行っていたが、
PHP5ではデフォルトでシャローコピーで行われる。
オブジェクトをディープコピーするには、cloneを使う。
※ディープコピー:オブジェクト本体だけでなく、参照しているオブジェクトも同時コピー
 シャローコピー:コピー元と同じオブジェクトを参照するものとしてコピー
  ということらしい。

i18n系がPHP5で使えない

PHP3のi18n系=PHP5のmb_系。PHP4は両方使える。
PHP3使い慣れてた人はPHP4で同じノリで使ってたりするけど、
PHP5にバーションUPするとき、使えなくなる。

以下動かすことだけを目的とした修正方法。
どっちにしろめんどくさい。
続きを読む

『ソ』Shift-jis

通常phpで↓なんて書くとエラーになる。

$str = mb_ereg_replace ("ソ\","ソ", $str);

『\』はエスケープ文字だから、当然なんだけど、『ソ\』を使わなくてはいけないこともあるのだ。

何故『ソ\』かっていうと
Shift-JISでformから送られてくると『ソ』が情報不足で『ソ\』にせんとイカン。
※どうしてかの説明はコチラ
続きを読む

各種クローラーのアクセスの許可指定の仕方

.htaccessでIPで携帯の許可指定してるなら、以下を追加

Googleモバイル(Googlebot-Mobile)

72.14.199.0/25 (72.14.199.0 - 72.14.199.127)
209.85.238.0/25 (209.85.238.0 - 209.85.238.127)

#Google Mobile
allow from 72.14.199.0/25
allow from 209.85.238.0/25

Yahooモバイル(Y!J-SRD/1.0・Y!J-MBS/1.0)

124.83.159.146 ~ 124.83.159.185
124.83.159.224 ~ 124.83.159.247

#Yahoo Mobile
allow from 124.83.159.