• 締切済み

Apache2.0.54にてRewriteRule内に/が含まれるパスが認識されない

お世話になります。 TOCMAT5.0.3/Apache2.0.54 の環境にて 特定ページへのアクセスが来た際にsslにてアクセスを行いたく 以下のような設定を行いました。 .htaccessにて --------- RewriteEngine on RewriteBase / RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^test/test.html$ https://%{SERVER_NAME}/secure.html [R,L] RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^test.html$ https://%{SERVER_NAME}/secure.html [R,L] --------- test.htmlでアクセスすると正常にリダイレクトが行われるのですが RewriteRule内に「/」が含まれているものはうまく動作しません。。 以下のようなパスに変更などして試しているのですがうまくいきません。 ^test\/test.html$ ^test//test.html$ ^test/*$ 他のサーバーにて、同様のRewriteRuleは正常に動作しますので、 mod_jk.conf httpd.conf の設定に不備があるように考えていますが検討が付きません。 ご教授よろしくお願い致します。

みんなの回答

回答No.2

サブディレクトリ /test/ にも、.htaccess を置かれていて、 そちらでも、rewrite を設定されているということはないでしょうか。

回答No.1

「うまく動作しない」というのは、エラーメッセージかなにか表示されるのでしょうか? それとも、Rewriteがされずに、/test/test.html がそのまま表示されるということなのでしょうか。 ちょっと気になったのですが、 RwriteBase / ということは、ドキュメントルートに.htaccess を置かれているのでしょうか。 本家のドキュメントによると、 httpd.conf を編集できる権限があるのならば、.htaccess を使わずに、 設定を httpd.conf に書いた方がよい です。

参考URL:
http://httpd.apache.org/docs/2.0/ja/howto/htaccess.html
cos31
質問者

補足

回答ありがとうございます。 > それとも、Rewriteがされずに、/test/test.html がそのまま表示されるということなのでしょうか。 はい。リライトが行われず /test/test.htmlがそのまま表示されます。 httpレスポンスを見るとリダイレクト要求が記載されていないことを確認しています。 .htaccessに記載したのは、httpd.confを編集できる権限がないからです。 動作としては.htaccessに記載してもhttpd.confにて記載しても変わらないという認識しています。