- 締切済み
mod_rewrite について
mod_rewrite について お世話になります。php初心者です。 URLのリライトを行いたくて色々調べてみたのですが問題が解消できず質問させて頂きます。 (サブドメインを使用しています) htaccessに下記のように記述しました。 RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.test\.aaa\.ne\.jp)(:80)? [NC] RewriteRule ^(.*)$ http://test.aaa.ne.jp/$1 [R=301,L] すると、 「http://www.test.aaa.ne.jp」 は、 「http://test.cns.ne.jp」 とならずにエラー画面が表示されます。(エラーコード404) URLの表示方法を換えたいと考えております。 (●●●できたら×××と表示する) それともそもそもの私の捉え方が間違っているのでしょうか。 サブドメインを使用しているからでしょうか。 ご教授頂けると大変ありがたいです。 宜しくお願い申し上げます。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- shimix
- ベストアンサー率54% (865/1590)
『aaa.ne.jp(弊社ドメイン)/public_html/test(公開ディレクトリ)/』というのは、test.aa.ne.jpを割り当てたディレクトリですよね。 www.test.aaa.ne.jpを割り当てているのは同じディレクトリですか(別のディレクトリに割り当てていれば、提示された.htaccessはそちらのディレクトリに置かないと意味がないので)。 というか >htaccessに適当な文字列(abcde)を書いてアップしましたが、 >500エラーにならず、現象は変わりませんでした。 .htaccessが無効なサーバ?もしくは.htaccessのファイル名を間違っているとか(でも.htaccess.txtになっていればローカルでは気付かなくてもFTPでわかりますよね)。
- shimix
- ベストアンサー率54% (865/1590)
えっと・・・。補足で書いていただいた現象だと「Rewriteがまったく効いていない」としか思えません。 .htaccessはサーバでwww.test.aaa.ne.hpを割り当てたディレクトリの直下に置いているのですよね?何か適当な記述を追記したら、500エラーになりますか?
補足
ご連絡が遅くなり大変申し訳ございませんでした。 別の案件で手が離せませんでした。 ご指摘の内容を受けもう一度レンタルサーバーのディレクトリを確認してみました。(以下、参照) 【現状のディレクトリ】 ・aaa.ne.jp(弊社ドメイン)/public_html/test(公開ディレクトリ)/bbb.html 上記が正式なパスです。 ドメインaaa.ne.jpのサブドメインとして、「test」を作成しております。 この環境で、「http://test.aaa.ne.jp/bbb.html」でアクセスするとちゃんと表示されます。 .htaccessは、「aaa.ne.jp/public_html/test/.htaccess」に格納しております。(bbb.htmlと同じディレクトリ) //補足で書いていただいた現象だと「Rewriteがまったく効いていない」としか思えません。 とのことでしたので、.htaccessの格納場所が間違っているのでしょうか。 またご指摘の通り、.htaccessに適当な文字列(abcde)を書いてアップしましたが、500エラーにならず、現象は変わりませんでした。 ご教授頂けないでしょうか。
- shimix
- ベストアンサー率54% (865/1590)
エラー画面になったときのURLはどうなっていますか? rewrite先のURLで404エラーになっているだけのように思えますが、直接 http://test.cns.ne.jp にアクセスすればちゃんと表示されるのでしょうか?
補足
早速のご連絡ありがとうございます。 質問が説明不足でした。 htaccessに記述した内容は合っていますが、 そもそも「http://test.cns.ne.jp/index.html」が存在しない状況です。 「http://www.test.aaa.ne.jp」にアクセスすると、 「設定の反映待ちか、存在しないアドレスです。 しばらく時間を置いてから、再度アクセスをお試しください。」 というコメントページになります。(タイトルには"無効なURLです") URLはアクセスしたものと同じになります。 「http://www.test.aaa.ne.jp/bbb.html」にアクセスすると、 「エラー404」となり、URLはアクセスしたものと同じになります。 「http://test.aaa.ne.jp/bbb.html」とはなりません。 また、ご指摘の通り、「http://test.cns.ne.jp」にアクセスすると、 index.htmlが存在しないので「エラーコード403」が帰ってきますが、 「http://test.aaa.ne.jp/bbb.html」でアクセスするとちゃんと表示されます。 この状況で不備理由が分かりますでしょうか。 引き続き宜しくお願い致します。
お礼
ご指摘いただいたように色々と試してみておりますがなかなか解決しません。 サーバーは.htaccessは有効ですし・・・ 色々なファイルがサーバー内に混在しているのも確かですので、一旦整理してから取り組みたいと思います。 最後までお付き合いいただき大変ありがとうございました。 大変勉強になりました。 ありがとうございました。