本ページは、2018年3月以降特に操作を行っていないのにも関わらずリダイレクトループ(※)や予期せぬエラー(400 Bad Request等)
PHPの実行エラーが発生し自分のサイトが表示されなくなった場合にご確認ください。
※アクセスしたURLから別のサイトへ自動で転送される処理(リダイレクト)が繰り返されることを指します。
はじめに
2018年3月からさくらのレンタルサーバやマネージドサーバでは、HTTP/2の追加をはじめとする機能の拡充を行っております。
機能拡充にあわせ、サーバーアプリケーションの構成変更メンテナンスを実施しております。
構成変更メンテナンスでは、お客様の環境には極力影響が出ないよう調整の上作業を行っておりますが、
お客様が設置された「.htaccess」ファイルの記述やPHPの関数によっては、メンテナンス後にエラーが生じサイトの表示に支障が出る可能性があります。
※「.htaccess」ファイルの記述内容については弊社サポート対象外とさせていただいております。
お客様の収容サーバーのメンテナンスが完了しているかどうかは、
サーバコントロールパネルの「国外IPアドレスフィルタ」を選択し、
「ホワイトリスト接続許可設定」という項目があるかどうかで判別できます。
項目がある場合はメンテナンスが完了し新構成へ変更されています。
リダイレクトが繰り返し行われましたと表示される(SNI SSL の仕様変更)
基本的な仕様については変更ありません。
http://~でサイトにアクセスした場合 | 環境変数 X_SAKURA_FORWARDED_FOR は付与されません。 |
---|---|
https://~でサイトにアクセスした場合 | X_SAKURA_FORWARDED_FORにIPアドレスが付与されます。 |
新環境でも同様に環境変数は出力されますが、複雑な処理を行うとエラーが発生する場合があります。
その際はSSLリダイレクト関連の記述を .htaccess より削除するかコメントアウトしてサイトの状態をご確認ください。
なお、ブラウザによってリダイレクト情報をキャッシュしますので別ブラウザやキャッシュを全削除した状態で再確認をお願いします。
今回新たに追加された仕様
SSLでアクセスした際は環境変数 HTTPS を常時付与するようにいたしました。
http://~でサイトにアクセスした場合 | HTTPSは付与されません。 |
---|---|
https://~でサイトにアクセスした場合 | HTTPSの値がonになります。 |
※旧環境ではHTTPSはリダイレクトすると消去されていましたが、改修後は消去されません。 X_SAKURA_FORWARDED_FORを利用せずにHTTPSを利用するようお願いいたします。
注意事項
- X_SAKURA_FORWARDED_FOR の環境変数の利用は旧環境においてもサポート対象外ですのでご注意ください。
エラー400 Bad Requestが表示される(.htaccess記述のエラー)
これまで以下のような記述をした場合、不正な記述ですがエラーを出力しておりませんでした。
新環境では存在しないファイル指定となりエラー出力(400 Bad Request)を行いサイトが閲覧できなくなります。
.htaccess内で、ドキュメントルートのフォルダより上の階層のファイルを指定しようとしたとき
例) ../index.html
ドキュメントルート以上の階層は参照できませんのでエラーが発生します。同階層のファイルを指定する場合は
例)./index.html
が正しい記述となります。
多くの事象は .htaccess ファイルの修正により改善する場合があります。 .htaccessの修正についてはサポートページをご覧ください。
PHPの環境変数「DOCUMENT_ROOT」が機能しない
PHP環境変数DOCUMENT_ROOTの出力が以下のように変更されました。
※ライトプランを除く
仕様変更前 | /home/[アカウント名]/www |
---|---|
仕様変更後 | コントロールパネルのドメイン/SSL設定より
「マルチドメインの 対象フォルダをご指定ください」で指定されたフォルダ |
出力例)
マルチドメイン対象フォルダに「example」を入力した場合
/home/[アカウント名]/www/example
PHPで$_SERVER['DOCUMENT_ROOT']を使ってファイルパスを指定している場合、
仕様変更後意図した挙動にならない可能性がありますので、ファイルパスの指定方法については別の方法をご検討ください。
※PHPプログラムの動作については弊社サポート対象外とさせていただいております。
PHPの環境変数「SERVER_ADDR」で取得できるIPアドレスが変わった
PHP環境変数「SERVER_ADDR」の出力内容が以下のように変更されました。
仕様変更前 | サーバーのグローバルIPアドレス |
---|---|
仕様変更後 | サーバー内部で使用しているIPアドレス(100.64.***.***) |
環境変数 HTTP_LISTEN_IPADDR でグローバルIPアドレスが取得できるようになっておりますのでご利用ください。
※PHPプログラムの動作については弊社サポート対象外とさせていただいております。
突然Internal Server Error が発生するようになった
.htaccessで行の途中にコメントを記述すると500エラー(Internal Server Error)が発生する場合があります。
※コメントを入れる際の仕様がApacheのバージョンアップにより変更されました。
例)
Allow from (IPアドレス) #このIPは許可する
※Internal Server Errorは他の要因でも発生しますが、コメントが原因の場合はサーバーのエラーログに「No comments are allowed here」というエラーが出力されます。
本事象を解消するには、下記例のように有効にしたい部分とコメントを改行で分けて記述するように修正をお願いします。
#以下のIPは許可する
Allow from (IPアドレス)