タグ別アーカイブ: サーバ

エックスサーバのベーシック認証設定で.htpasswdのフルパス間違ちゃった話

 

エックスサーバで、MTの管理画面にベーシック認証かけようとして、ちょっと躓いたのでメモ。

基本的に作り方は他のサーバと一緒。
.htaccessと.htpasswdつくってサーバにあげるだけ。

.htaccess

<Files mt.cgi>
AuthUserFile /フルパス/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
order deny,allow
</Files>

MTの管理画面入口はデフォ名がmt.cgiなので、1行めで指定。
2行目に.htpasswdの場所をフルパスで記述。

しかし何度やっても上手く行かず、パスワードの暗号化失敗してるのかと思って、他のサーバで試したけど、
他のサーバなら上手く行く。

ということでフルパスが違うのかと調べたら、違ってた。

エックスサーバのフルパスは、どうやらhome/ユーザ名/で始まるらしい。
今回、Winscpで右クリック>フルパスをクリップボードにコピー でフルパス取得してたんだけど、
これだと一番上がユーザ名になっちゃってて、それで.htpasswdを見つけられなかったらしい。

おまけ
フルパスの調べ方

 <?php
echo __FILE__;
?>

 
↑をテキストエディタに書いて、適当な名前.phpで保存。
調べたいディレクトリにほりこんでブラウザからアクセスしたら、フルパス取得してくれます。

おまけ2
.htpasswdの書き方
ID:PW
の形で書くだけ。
ただし、PWは暗号化するべし。

→→暗号化までしてくれる便利なジェネレータはこちら。
たまに使わせて頂いています。

さくらインターネットの海外IPフィルタがGoogle botを拒否しちゃって順位ガラった話

 

【起こったこと】
サーバがGoogle botを拒否ってしまい、順位下落。
【対処】
さくらインターネットにて「国外IPアドレスフィルタ設定」を「無効」に。
【結果】
インデックスされ、翌日には順位元通り。

【残った疑問】
同じサーバに入っていても、Google botを拒否(403)したサイトと、何にも変化のないサイトがある。
この違いは何?

【詳細・経緯】
3月下旬の連休明け、某キーワードで常に1位だったサイト(A.comとします)が10位になっていた。
大したキーワードではなく、古いサイトでSEO対策も一切していないのだけど、タイトルのおかげで1位になっているようなサイト。
それが急に下落。
調べると、そのキーワードで1~10位のサイトはほぼ順位変動がなく、A.comが下落したことにより、1ランクずつ上がっているだけだった。

これはなんだと思い、ウェブマスターツールで調べると、クロールエラーが大量発生していた。
Fetch as Googleをポチってみると、Googlebotを拒否しているというメッセージが・・・。

もちろん、robots.txtなんて弄っていない。弄っていないのに急に拒否をし始めた。
初めに疑ったのが、サーバ障害。

A.comはさくらインターネットを使っているので、さくらの障害情報を見るも、それらしい情報はなし。
代わりにみつけたのが↓

この度、2014年3月13日(木)より提供開始いたしました、「国外IPアドレスフィルタ設定」の機能が、「さくらのレンタルサーバ(マネージドサーバ、メールボックス含む)」サービスの全サーバに設定完了いたしましたのでお知らせいたします。

 「国外IPアドレスフィルタ設定」により、国外IPアドレスからのアクセスを制限し、多発する海外からの不正なアクセスを防ぎます。
 この設定はサービスのご利用に影響がないよう制限範囲を限定しており、機能の無効化も可能です。

[お知らせ] レンタルサーバサービスのセキュリティ強化(国外IPアドレスフィルタ設定)完了のお知らせ

Google botって海外IPじゃないのかと思い、「国外IPアドレスフィルタ設定」を無効にして、再Fetch。
するとインデックスに成功。
この対応後、1日で順位は1位に戻って今日まで安定。

まぁ大した被害はなく結果オーライではあるのだけど、同じサーバでも、WPのサイトは無事、古いMTのサイトがダメだったので、違いを調べていたところ、2CHのレンサバ板にて

362 :名無しさん@お腹いっぱい。:2014/03/22(土) 06:54:25.66 0
php.cgiを設置していたらドメイン単位でgooglebotにアクセス禁止(403)を
返してる。
説明にはphp.cgiはファイルだけアク禁になるって書いてるのに。
さくらはろくにテストもしないで、今回の措置をやったんだろうな。
気付かずにサイト飛ばす人、続出しそう。
http://toro.2ch.net/test/read.cgi/hosting/1389803293/362

というレスを発見。

たしかにA.comにはphp.cgiは置いてある。WPにはない。

php.cgiだけ拒否するのなら良いのだけど、ドメインごと拒否されたらたまらん。
ということでさくらインターネットに問合わせ。

一両日どころか、けっこうしばらくしてから帰ってきた返事が以下

さくらのレンタルサーバではCGIモードのPHPは拡張子.phpにて動作する
よう設定されております。お客様にて独自に設定を行っていただき、
拡張子.htmlで運用していただくことについて特に制限はいたしており
ませんが、不具合が発生いたしました場合も弊社にて対応や調査はでき
かねます。

php.cgiを経由して全てのhtmlファイルを動作させるためにドメイン
単位での影響が出ているものと推測いたします。

ビジネスプロプランではモジュール版のPHPをご利用いただき、適切に
.htaccessで記述を行なっていただければ、php.cgiの設置なしに拡張子
.htmlでPHPのコードを動作させる事が可能でございます。

※設定方法に関するサポートは承っておりません

モジュール版PHPを利用し、php.cgiの運用を停止をご検討ください。

「仕様です」ってことだろうか。(php.cgiは許可していないから、そんなもの設置してどう動いたって知らないよってこと?)
今回は海外IPフィルタをオフにしたので、php.cgiについてはそのままにしているけど、海外IPフィルタをオンにできないこと以外に問題はなさそう。

htmlでphpを実行するための.htaccess記述については、以前のエントリを参照。
※そういえばたしかにこのエントリーでも「公式では不可能」ってなってた。

362さん、ありがとうございました。

エックスサーバーで、htmlのままphpを動かしたい・・・

 

エックスサーバーで、htmlのままphpを動かしたかったのだけど・・・どうしてもできなかった。
公式には.htaccessを以下のように編集すれば可能となっている。

—————————-
AddHandler x-httpd-php .html
—————————-

しかし、これだと真っ白になる。
もちろん、xml宣言にも配慮して<?php echo ‘<?xml version=”1.0″ encoding=”utf-8″?>’.”\n”;?> に書き換えたりもしたけど、変わらず。

サポートに問い合わせても、(X)おかしなところはない、それでできるはず⇒(Me)ならないよ⇒(X)これ以上のサポートはやってないからググって・・・ということで見はなされた。

何回もググってるんだけど・・・。

AddHandler x-httpd-php5.3 .php .phps .html
AddType application/x-httpd-php .php .html

AddHandler x-httpd-php .php .html

AddHandler x-httpd-php5 .php .phps .html

AddHandler application/x-httpd-php .php .html

とか、ぐぐって、出てくる限りのタイプを試したけどダメだった。
文字コードや改行コードもいろいろ試したけど甲斐なし・・・
さくらインターネットもヘテムルもできたのに、エックスサーバだけどうやっても無理・・・。

仕方ないので、結局拡張子を.phpにして.htmlを.phpに301リダイレクトした。
1ページだけだから初めからこうしておけばよかった・・・とも思うけど、できればリダイレクトしないで対応したかった・・・。