質問: ### 前提・実現したいこと iOS10 safariでBasic認証をかけたページでユーザー名・パスワードが違う(または未入力)場合に、カスタマイズした401ページを表示させたいです。 この環境でのみ上手く表示できませんでした。 ### 発生している問題・エラーメッセージ ユーザー名とパスワードを入力するダイアログは表示されるが、そこで何も入力せずキャンセルをタップした場合、401エラーページは表示されず、白紙ページになってしまう。 カスタマイズしない場合は、iOS10 safariでもサーバーの用意したエラーページ(英語で書かれた401ページ)が表示されていました。 ### 試したこと 問題なくカスタマイズした401ページが表示できたブラウザは Windows10 (Chrome/Firefox/IE11/Edge) Mac OSX (Chrome/Firefox/Safari) Android 6.0 (Chrome/Firefox) です。 ### 設置状況 レンタルサーバー:さくらインターネット(スタンダード) ``` www(全体にBasic認証でアクセス制限) ├index.html←ここにアクセス ├.htaccess(a) ├.htpasswd └[error](このディレクトリのみアクセス制限除外) ├ 401.html └.htaccess(b) ``` ### 該当のソースコード .htaccessはサーバーで自動生成されるコードと検索などで見つけたコードを参考に作成しました。 .htaccess(a) ``` DirectoryIndex index.html index.htm index.shtml index.php index.cgi .ht AuthUserFile /home/******/www/.htpasswd AuthType Basic AuthName "Web access" Require valid-user Satisfy all Order deny,allow ErrorDocument 401 /error/401.html ``` .htaccess(b) ``` Satisfy any order allow,deny allow from all SetEnvIf User-Agent "Googlebot" shutout SetEnvIf User-Agent "Slurp" shutout SetEnvIf User-Agent "msnbot" shutout order Allow,Deny Allow from all Deny from env=shutout ``` 以上です。 ご教授のほどよろしくお願い致します。
回答: 根本的に解決していませんが、わかったことは下記の通りです。 動作を確認した結果です。 iphone7+Basic認証での動作 1)何も入力せずキャンセルをタップ→ページの読み込み終了、認証しない→白紙(現在閲覧のページから変わらない) 2)間違ったものを入力→401エラーページが出力されました。 1の状況をどうにかしたかったのですが... 他のブラウザとはキャンセルの挙動が異なるようです。 これ以上回答いただけそうにありませんので 質問を閉じさせていただきます。