• 締切済み

.htaccessについて

PHPでの.htaccessを要してリダイレクトやアクセス禁止にするときは、どうすればいいのでしょうか? リダイレクトの例えとして、 訪問者がttp://www.abcde.com/にアクセスすると、 ttp://www.abcde.com/bbs/に移動する 初歩的な質問ですみません。 ご教授お願いします。

  • PHP
  • 回答数4
  • ありがとう数0

みんなの回答

noname#182841
noname#182841
回答No.4

こちらで確認してみては? http://www.shtml.jp/htaccess/redirect.html

回答No.3

質問は、転送元にわざわざ最もシンプルな/を指定しているがゆえに、その/の意図をどのように推測するかによってさまざまな答えが出てきます。 たまたまそう書いただけで深い意味はないのか、ぜひ/でなければならないのか。そして配下のファイルやサブディレクトリはどうしたいのか。 転送元が/で転送先がそのサブディレクトリなので、一見単純なようで実に答えづらい質問です。 無限ループの問題があるからです。 自分のサブディレクトリにリダイレクトしない仕様に変更すれば簡単なのですが。 もし質問が、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は無関係です。 質問カテゴリを適切にしたほうが、より良い回答がより早く得られ、質問者にとって利多きものになるでしょう。

noname#182841
noname#182841
回答No.2

修正版です。 .htaccess Error Open Document 404 'not.htm' Error Open Redirect 404 'bbs'

noname#182841
noname#182841
回答No.1

Error Document 403 'ForBiddenのURL' って感じでしょうか?

関連するQ&A

  • .htaccessリダイレクト

    .htaccessリダイレクト 別ドメインにリダイレクトさせるための方法が分からないので、質問させてください。 現在http://www.aaaaa.jp/aaa/bld_list.phpにアクセスしたときに http://www.bbbbb.jp/bbbにリダイレクトさせようとしています。 googleで「別ドメイン .htaccess リダイレクト」など色々検索してみたのですが、 なかなか出て来なく、困っています。 どなたかアドバイスいただけないでしょうか?

  • .htaccessを用いて.cgiを.htmlにリダイレクトしたい

    .htaccessを用いて.cgiを.htmlにリダイレクトしたい 現在webサイトで以下のようなURLが表示される掲示板を設置しています。 http://hoge.com/bbs1/bbs.cgi?nd=dd&parent=32 http://hoge.com/bbs1/bbs.cgi?nd=dd&parent=500 (最後の数字は10から500くらいまであります) これを過去ログにするため、html化しました。 http://hoge.com/log1/32.html http://hoge.com/log1/500.html しかし以下のような.htaccessを、/bbs1/以下に設置しても、htmlに転送することができません。 RedirectPermanent /bbs1/bbs.cgi?nd=dd&parent=32 "http://hoge.com/log1/32.html" ちなみに以下のようなhtmlファイル同士の転送はできます。 RedirectPermanent /bbs1/index.html "http://hoge.com/log1/index.html" 301リダイレクトでcgiをhtmlに転送することはできないのでしょうか? もしおわかりになりましたらご教授いただけますと大変有り難いです。

    • ベストアンサー
    • CGI
  • .htaccessの記述について教えていただきたいです。

    .htaccessの記述について教えていただきたいです。 例えば http://www.hogehoge.com/index.php?language=japanese というURLにアクセスした場合に http://www.hogehoge.com/index.html にリダイレクトされるようにしたい場合、 どのように記述をすればうまくいくのでしょうか? ネットで色々と調べてはいるのですが、 なかなか成功する方法が見つからずに困っています。 よろしくお願いいたします。

  • .htaccessでリダイレクト先を指定したい

    初めまして、ご質問させていただきます。 現在新しいホームページを作っていて、 サイトにアクセスしたIPアドレスで表示先を切り替えたいのですが .htaccessのリダイレクト指定で可能なのでしょうか? 例えばhttp://www.hogehoge.com/にアクセスした場合 ↓ 【アクセスが自分以外のPCの場合】 http://www.hogehoge.com/index.html 【アクセスが自分のPCの場合】 http://www.hogehoge.com/index.php ネットで調べていて.htaccessという存在を知り、 色々と調べてみて、分からなかったので質問させていただきました。 参考箇所↓ http://www.shtml.jp/htaccess/redirect.html よろしくお願いいたします。

  • .htaccessのリダイレクトの書き方

    .htaccessのリダイレクト処理で http://sample.com/index.phpにpost情報込みでアクセスがあった場合、 「www統一」 「index.phpなし」 「index.phpなしアドレスにリダイレクトされた場合もpostの値を取得できる」 という条件を満たすコードはどのようにすれば良いのでしょうか? 「www統一」や「index.phpなし」は説明サイトも多いので可能なのですが、リダイレクト後のURLでもpostの情報を取得する方法がわかりません。 どうそよろしくお願いします。

    • ベストアンサー
    • HTML
  • htaccessにgoogleアナリティクス

    htaccessのリダイレクト元のアクセスをgoogleアナリティクスで集計したいと思っています。 aaa.comとbbb.comの二つのドメインを持っています。 事情があって、aaa.comは使えなくなったので、htaccessを使ってbbb.comへリダイレクトしています。 aaa.comのアクセスを、googleアナリティクスを使って集計したいと考えています。 どのようにすればよろしいでしょうか? メタタグでの転送は、リダイレクトされない場合があるのと、一瞬aaa.comが表示されてしまう可能性があるので使えません。 よろしくお願いします。

  • .htaccessでのRewriteRuleが下層ディレクトリに効かない

    現在一番上の階層にドメインを適用しており、そこでwww有りと無しを統一する為、.htaccessに以下のように記述しています。 RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.example\.com)(:80)? RewriteRule ^(.*) http://example.com/$1 [R=301,L] これで、http://www.example.com/ は http://example.com へ、 下層ディレクトリの http://www.example.com/sample/ は http://example.com/sample/ と、 上記のようにリダイレクトしてくれますが、下層ディレクトリの中に掲示板スクリプトを設置しているものがありまして、 そのディレクトリ(/bbs)の中にも、スクリプトのURL書き換えの為のRewriteRuleを記述した.htaccessを設置しています。 ※このディレクトリ(/bbs)のRewriteRuleには、RewriteCond %{HTTP_HOST} は記述していません。 ここで困った事に、http://www.example.com/bbs/ にアクセスすると、そのままwwwが付いたURLがそのままアドレスバーに表示され、 www無し(http://example.com/bbs/)にリダイレクトしてくれません。 .htaccessを設置していない(RewriteRuleを記述していない)下層ディレクトリは、上層ディレクトリに記述しているRewriteRuleの継承をしてくれる為、http://example.com/sample/ のように表示(リダイレクト)されますが、上記の/bbs ディレクトリなどに対しても、上層のRewriteRule を引き継げる方法は無いでしょうか? 色々調べて、RewriteOptions inherit というのも見つけたのですが、/bbs ディレクトリの.htaccessに記述しても、 トップページ(http://example.com/)へリダイレクトされてしまい、どうすれば良いか悩んでおります。 環境は共用レンタルサーバで、 Apacheのバージョンは1.3.39 (Unix)。 httpd.confは自分では設定する事が出来ません。 上層ディレクトリのRewriteRuleを引き継げない場合、/bbs ディレクトリの.htaccessにはどのように記述すれば www無し(http://example.com/bbs/)になるのかでも勿論構いません。 もし良い方法がありましたらご教示頂けますと幸いです。 宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • .htaccessの書き方 リダイレクト

    http://example.com http://www.example.com https://example.com これらへのアクセス全てを https://www.example.com にリダイレクトさせたいと思います .htaccessは具体的にどう書いたら良いでしょうか? よろしくお願いします

  • .htaccessリダイレクトでの#や&について

    ハマってしまいました。ご教授ください。 .htaccessに #(%23) や &(%26) をエンコードしたものを渡すと、返りがなくなってしまうのですが、 引き継ぐ方法はないでしょうか? NEフラグをつけても駄目でした。 以下の検証で試してます。 [.htaccess] RewriteEngine On RewriteRule ^([0-9a-z]{1,10})/(.*)$ x.php?q=$2 [NE,L] [x.php] <?php echo $_GET['q']; ?> http://hogehoge.com/xxx/%23 とアクセスすると、 何も表示されません。 http://hogehoge.com/x.php?q=%23 とアクセスすると、 「#」 と表示されます。

  • htaccessのリダイレクト(php→html)

    .phpで運用していたウェブページの拡張子を、.htmlに変更したのですが、 .phpにアクセスがあった場合、.htmlにリダイレクトするように htaccessを設定したいと思っています。 htaccessに、 RedirectPermanent http://user-domain/hogehoge.php http://user-domain/hogehoge.html と書けばリダイレクトされるとは思うのですが、 ページ数が少し多いサイトですので、1ページ1ページ書かずにできる方法を ご存知の方がいれば、教えて頂けないかと思いこちらに投稿しました。 どなたかお知恵を貸していただけませんか?? よろしくお願いいたします。

    • ベストアンサー
    • PHP