- 締切済み
.htaccessについて
PHPでの.htaccessを要してリダイレクトやアクセス禁止にするときは、どうすればいいのでしょうか? リダイレクトの例えとして、 訪問者がttp://www.abcde.com/にアクセスすると、 ttp://www.abcde.com/bbs/に移動する 初歩的な質問ですみません。 ご教授お願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
こちらで確認してみては? http://www.shtml.jp/htaccess/redirect.html
- honoka-cha
- ベストアンサー率54% (40/73)
質問は、転送元にわざわざ最もシンプルな/を指定しているがゆえに、その/の意図をどのように推測するかによってさまざまな答えが出てきます。 たまたまそう書いただけで深い意味はないのか、ぜひ/でなければならないのか。そして配下のファイルやサブディレクトリはどうしたいのか。 転送元が/で転送先がそのサブディレクトリなので、一見単純なようで実に答えづらい質問です。 無限ループの問題があるからです。 自分のサブディレクトリにリダイレクトしない仕様に変更すれば簡単なのですが。 もし質問が、http://www.abcde.com/aas から http://www.abcde.com/bbs へのリダイレクトなら単純に次のように書くことが出来ます。 Redirect /aas /bbs しかし、質問が、http://www.abcde.com/ から http://www.abcde.com/bbs へのリダイレクトを意味しているとなると、ややこしい。 もし Redirect / /bbs と書いてしまうと、無限ループになってしまって駄目です。 ではどうすれば良いかというと、真の意図や環境、ユーザにはどう見せたいかによって方法はいくつかあると思いますがとりあえず3つ。 方法1:転送元にデフォルトファイル名を明記する方法 Redirect /index.html /bbs 方法2: ErrorDocument 403 "/tobu.html" ErrorDocument 404 "/tobu.html" そして、tobu.htmlファイル内に<meta>タグを記述しhttp://www.abcde.com/bbsへ自動転送。 「.htaccessを使ってリダイレクト」そのものではありませんが、1つの方法として。 方法3:httpd.confで根本的な変更 もしApacheの設定ファイルhttpd.confを編集できる立場なら、いっそのこと最初からbbsディレクトリをドキュメントルートとする。 .htaccessは使わない方法です。 例えば、変更前のドキュメントルートが /var/www/html で変更後のドキュメントルートが /var/www/html/bbs なら httpd.confにおいて 変更前: DocumentRoot "/var/www/html" <Directory "/var/www/html"> オプション等 </Directory> 変更後: DocumentRoot "/var/www/html/bbs" <Directory "/var/www/html/bbs"> オプション等 </Directory> さて、自サイト内の転送はちょっとした記述ミスで無限ループの可能性が出てきますので細心の注意が必要です。 また大規模サイトだといろいろ追記しているうちに複雑になってメンテナンスや引き継ぎが大変な事になることもあるでしょう。 私だったら方法3にします。 あと、細かい話ですが気になったので。 > PHPでの.htaccessを .htaccess は Apacheに関するファイルなので、PHPは無関係です。 質問カテゴリを適切にしたほうが、より良い回答がより早く得られ、質問者にとって利多きものになるでしょう。
修正版です。 .htaccess Error Open Document 404 'not.htm' Error Open Redirect 404 'bbs'
Error Document 403 'ForBiddenのURL' って感じでしょうか?