- ベストアンサー
.htaccessでドキュメントルートを変更する方法
- .htaccessを使用してドキュメントルートを変更する方法を調べています。
- 一般的なレンタルサーバを使用しており、現在のドキュメントルートは/www/です。
- root権限がないため、httpd.confを変更することはできませんが、.htaccessの設置は可能です。ドキュメントルートを/www/xxxx/に変更したいと考えています。リダイレクトによる変更ではアドレスが変わってしまうため、別の方法を探しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
なるほど。わかりました。 mod_rewrite を使えば出来そうですが、mod_rewriteは難しい。.htaccessで、 RewriteEngine on RewriteRule /(.*) /xxx/$1 かなあ。 あとは、逆転の発想で、xxxの中と外を入れ替えませす。具体的には、 public_html/secret/ というディレクトリを作り、現在public_htmlの下にあるウエブから見せたくないファイルをこの下に移動し、 public_html/xxx/ の下のファイル群を全部 public_htmlの直下に移します。 その後、public_html/secret/.htaccessに <Files "*"> deny from all </Files> を書くとそこのファイルはウェブから見えません。
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
ドキュメントルート自体は、システム全体の物なので、.htaccess では変更できるはずがありません。 ただ、おそらくあなたがドキュメントルートという言葉で言いたいことは違うことのような気がします。どう言うところに問題があって、それをどう解決したいのでしょうか?
補足
アドバイスをありがとうございます。 指摘されれば、確かにドキュメントルートと言う表現は違ったかも知れません。ご指摘ありがとうございます。 行いたい事を記載します。 現在共有のレンタルサーバを借りています。レンタルサーバ会社の資料によると、html ファイルを公開するディレクトリは、/www/ となっています。フルパスは、/virtual/www/ になるそうです。 この状態で。 http://www.hoge.jp/ でアクセス出来ます。 ただ事情で、www 直下に html ファイルを置きたくありません。置きたくないと言うより、ファイルが散乱する為、/www/xxx/ と言うディレクトリを作成してファイルを置いています。ですので現在 http://www.hoge.jp/ でアクセスすると、 http://www.hoge.jp/xxx/ が表示出来るように、.htaccess ファイルで、リダイレクトしています。 .htaccess Redirect permanent /index.html http://www.hoge.jp/xxx/ としています。 この状態だと、 http://www.hoge.jp/ にアクセスすると、 http://www.hoge.jp/xxx/ に URL が変わってからページが表示します。 これを、リダイレクトで無く、 http://www.hoge.jp/ にアクセスしたら http://www.hoge.jp/xxx/ の内容が、 http://www.hoge.jp/ の URL のまま表示出来ればと思っています。 他の案として /www/ に index.html ファイルを置いて、/www/xxx/ 内のファイルにリンクする。 もしくは、/www/xxx/ のファイルを直接 /www/ に設置するになると思います。 .htaccess ファイルで実行出来ない場合は、上記の案を実行しますが、その前に、.htaccess で実行出来ないものか質問させて頂きました。
補足
ご返事が遅くなりました。 .htaccess ファイルに下記の記述を入れてみました。 RewriteEngine on RewriteRule /(.*) /xxx/$1 http://www.hoge.jp/ にアクセスしても、 http://www.hoge.jp/xxx/ のページは開きませんでした。 また、手動で xxx とアドレスを書き足した所 http://www.hoge.jp/xxx/ のページでは以下のエラーが表示されてしまいました。 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. ちなみに、.htaccess ファイルで RewriteEngine on RewriteRule /index.html /xxx/$1 と書き換え、 http://www.hoge.jp/index.html にアクセスしても、変化がありませんでした。 なんか残念に思います。