サーバーが増えるごとに、増えるコピペ、使いまわし。
以前のこのサイトをもとに、新たに作ろうみたいなのりでしょうか。
特に .htaccess関係はこんな記述いらないでしょ、というようなものも、多数のこっていることが
例①:-そもそも、〇〇フォルダなどないのに、〇〇フォルダにリダイレクト設定がある-
例②:httpd.confでhttpsのリダイレクトを設定しているのに、.htaccessでもhttpsへのリダイレクトをしている
不必要な記述だけならまだしも、あのサイトの .htaccessをコピペしたけれど、さくらのレンタルサーバーでは動かない。これがこまります。
例:RewriteRule ^hoge https://yahoo.co.jp [R=301,L]
理由:RewriteRule 正規表現の開始位置が.htaccessとVertualHostで異なるため、VertualHostのRewriteRuleをさくらのレンタルサーバーの.htaccessにコピペしても、リダイレクトされない。
.htaccessコピペにスムーズに対応できるよう
さくらのレンタルサーバーベーシック認証の初期値を調べてみました。
※ここでの初期値とは
ファイルマネージャーでパスワードによる制限をした場合をいいます。
https://help.sakura.ad.jp/206207041/
※素人がなんとなく調べたました。でも実務では使えます。
1 DirectoryIndex index.html index.htm index.shtml index.php index.cgi
2 Options -Indexes
3 AuthUserFile /home/test/www/test2.inuo55.jp/.htpasswd
4 AuthType Basic
5 AuthName "Web access"
6 Require valid-user
7 Satisfy all
8 Order deny,allow
###1 DirectoryIndex index.html index.htm index.shtml index.php index.cgi
トップページに表示させるファイルを index.htmlにする
index.htmlがないときは index.htm
index.htmもないときは index.shtmlの順で表示されます。
※注) https://〇〇.com?id=aaa のようにPHPでパラメーラの処理をしている場合に
index.phpとindex.html両方あると、index.htmlが表示され、index.phpのパラメータの取得がうまくいかないということがあります。
そんなときは
DirectoryIndex index.php index.html index.htm index.shtml index.cgi
とindex.phpを先頭に持ってくればOK
###2 Options -Indexes
ファイルが存在しない場合、Not Foundと表示される
さくらのレンタルサーバーの初期値です。
初期値なのでいらない?と思いますが、これがないと動作しないプラグインもあるとのことで消さずにいます。
Options -Indexes ではなくて Option Indexesにすると、ファイルが存在しない場合ファイルの一覧が表示されます。
開発中はこちらのほうが便利。
さくらの公式サイト参考URL:https://help.sakura.ad.jp/206054622/#11
###3 AuthUserFile /home/〇〇/www/〇〇〇/.htpasswd
パスワードが書いてあるファイルの場所
コピペしたとき必ず書き換えるのがこれ。
注)同じサーバー内でコピペした場合、偶然にもそのファイルが存在する場合があります。
そうしたら、〇〇さんはログインできないはずなのに、ログインできるなぜ?てなことになります。
###4 AuthType Basic
ベーシック認証ですと宣言。ここはそのまま
###5 AuthName "Web access"
ひと昔前まではベーシック認証のダイアログに表示されて、メッセージのような感じだったのですが、最近は表示されなくなりました。
なのでこのままでOK
###6 Require valid-user
すべての有効なユーザーがリソースにアクセスできるということ
だれでもOKということですね。
Require Apache公式サイト
http://httpd.apache.org/docs/2.4/ja/mod/mod_authz_core.html#require
###7 Satisfy all
IPアドレスによる制限をみたし、かつ、ベーシック認証の正しいIDとパスワードを入力した場合にページが表示される
さくらのレンタルサーバーは初期値で外国IPアドレスを制限しています。
ということは国内からのアクセスは
IPアドレスの制限をみたしています。
で、ベーシック認証の正しいIDとパスワードを入力すると、ページが表示されるということです。
ちなみに
Satisfy anyにすると
IPアドレスによる制限とベーシック認証のIDとパスワードどちらかを満たせばよいということになります。
なので、さくらのレンタルサーバーの場合、国内からアクセスするとその時点でIPアドレスによる制限を満たしているので、
ベーシック認証のダイアログは表示されなくなります。
これもコピペで動かないの原因の1つです。
Satisfy Apache公式サイト:
https://httpd.apache.org/docs/2.4/ja/mod/mod_access_compat.html#satisfy
###8 Order deny,allow
すべてのホストからのアクセスを許可するということ。
アクセスが許可されているのでアクセスするとベーシック認証がでてきます。
Order Apache公式サイト
https://httpd.apache.org/docs/2.4/ja/mod/mod_access_compat.html#order
よくわからなかったので
Order Allow,Deny にしてみました。
Forbidden
You don't have permission to access this resource.
と表示されます。ベーシック認証のダイアログすらでてこいません。
どうやらアクセスする権限がないということのようです。
たしかに公式サイトをみると
デフォルトのアクセス状態が Deny になるためすべてのアクセスを拒否します。
とあります。
ベーシック認証でアクセスを拒否するという意味ではなくて、そもそも、アクセスの権限すらないということのようです。
ここもコピペでうまくいかないときのチェック項目です。
参考サイト:
https://httpd.apache.org/docs/2.4/ja/mod/mod_access_compat.html#page-header
http://koseki.hatenablog.com/entry/20100913/ApacheAccessControl