みなさん < こん??は でび です
LOGから見ると、IE側のバグとも考えづらいのでは、と思うのですが、
サーバ屋さんの"httpd.conf"の設定ミスと見て良いんでしょうかね?
ちと不安なので、サーバ屋さんに問い合わせする前に、見て下さい。
なお、環境は、共有サーバで、"httpd.conf"ファイルをいじる権限はなし。
ユーザがいじれるのは".htaccess"ファイルだけです。
OSはCentOSだろうと思います(たぶん)。
サーバのドキュメントルートが「ア」となっていて、
「イ」へのアクセスを「ウ」にリダイレクトしたい、と。
んで、「エ」には「オ」と記述されている。
このとき、★部分に、「カ」だけを入れた場合でも、また、「キ」だけを
入れた場合でも、Firefoxではイにアクセスすると狙い通りに
「ウ」に飛んでくれる。
ところが、IE9だとサーバのドキュメントルートを指定したかのような
http://www.examle.com/usr/home/U-ID/html/CCC/DDD.html
というアドレス(としてブラウザでは見えるアドレス)に飛んでしまいます。
前提条件として、カやキのBBB.htmlというファイル名は
設置している静的コンテンツの中で一意に決まるファイル名です。
また、FirefoxでもIE9でもwww付加する部分のRewriteRuleは
U-ID部分が露出したりしないで、ちゃんと効いています。
そして、401~404エラー処理についてもFirefoxでもIE9でも
ちゃんと効いています。
ですので、記載を省略したHTTP_USER_AGENTの所でIE9だけが
引っかかるようなわけでもなさそうです。
さて、Firefoxでは正常にジャンプしますが、IEでアクセスした
場合はエラーになる。該当する部分をhttpd-error_logで見ると、
[Tue Mar 19 04:54:43 2013] [error] [client XXX.XXX.XXX.XXX] File does not exist: /usr/home/U-ID/html/usr/home/U-ID/html/CCC/DDD.html
と出ています。
これが実際にIE9がサーバに要求しているアドレスのようです。
どう見ても二段重ねの要求を出しているように見えます。
なんじゃこりゃ?
で、そんな所にファイルはないので、結果的にIE9では
404エラー用表示に作っておいた404.htmlが表示される
という次第です。
試した感じではRewriteBaseを無指定にしても関係ないみたいです。
6時間ほどがんばりましたが、降参です。
これ、どう対策したら良いでしょう?
ア:
http://www.examle.com/usr/home/U-ID/html/
イ:
http://www.examle.com/AAA/BBB.html
ウ:
http://www.examle.com/CCC/DDD.html
エ:
http://www.examle.com/.htaccess
オ:
------------------------------------------
RewriteBase /usr/home/U-ID/html
# RewriteBase /
# 以下、wwwなしでのアクセスを301エラーで永久リダイレクト
RewriteCond %{HTTP_HOST} ^(192\.168\.0\.1)(:80)? [NC,OR]
RewriteCond %{HTTP_HOST} ^(example\.com)(:80)? [NC]
RewriteRule ^(.*)
http://www\.example\.com/$1 [R=301,L]
#★
# AfriNICのIPv4ブロック3つを全て遮断
RewriteCond %{REMOTE_ADDR} ^41\.* [OR]
RewriteCond %{REMOTE_ADDR} ^196\.* [OR]
RewriteCond %{REMOTE_ADDR} ^197\.* [OR]
#(bot対策とか色々。大幅に中略)
RewriteCond %{HTTP_USER_AGENT} "^$" [OR]
#(bot対策とか色々。大幅に中略)
RewriteCond %{HTTP_REFERER} facebook\.com [NC]
RewriteRule ^.*$
http://www.google.com/ [R=301,L]
# パスワード認証に失敗した場合
ErrorDocument 401 /error/401.html
# アクセス規制に引っかかった場合
ErrorDocument 403
http://www.spam.com [R=301,L]
# 存在しないファイルの場合
ErrorDocument 404 /error/404.html
#(以下略)
<FilesMatch "^\.ht">
Satisfy all
Order Allow,Deny
Deny from all
</FilesMatch>
<FilesMatch "\.(ini\.php|lng\.php)$">
Order allow,deny
Deny from all
</FilesMatch>
------------------------------------------
カ:
------------------------------------------
RedirectMatch permanent ^(.*BBB\.html)$
http://www.examle.com/CCC/DDD.html
------------------------------------------
キ:
------------------------------------------
RewriteRule ^.*BBB\.html$
http://www.examle.com/CCC/DDD.html [R=301,L]
------------------------------------------
でび
http://davi.txt-nifty.com/1984/