• 締切済み

Apache Rewrite設定

例えば、USER_AGENTにDoCoMoを含む接続元から、 下記URLにアクセスが来たら、 http://hoge.jp/aiueo/kakikukeko/hoge.htmlhttp://hoge.jp/mobile/aiueo/kakikukeko/hoge.html にリダイレクトさせ、且つ、/mobile/配下の存在しないページにアクセスが来たら、 /mobile/トップページに飛ばす。という事をしたいと思っています。 http://hoge.jp/mobile/aiueo/kakikukeko/nofile.html ↓/mobile/配下の存在しないページにアクセスがあったら、 http://hoge.jp/mobile/ に飛ばす。 /mobile/へのリダイレクトは問題無く出来るのですが、 /mobile/配下の存在しないページアクセスに対するリダイレクトがわかりません。 ApacheのErrorDocumentに、 ErrorDocument 404 /error/404error.html を設定しています。 参考になるお知恵を拝借頂けますと幸いです。 以上、よろしくお願いします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.2

>.htaccessは使わず、 >/mobile/は実体ディレクトリではなく、別ディレクトリへのシンボリックリンクになっています。 httpd.conf に <Directory mobileのファイル絶対パス> ErrorDocument 404 /mobile/ </Directory>

mohamedo_byson
質問者

お礼

その後調査を進めた所、/mobile/配下の存在しないページにアクセスした時は、システム側の404ページを表示するようにしていたため、Apacheのログでは200を返していました。 なのでシステム側で404表示する所を/mobile/へリダイレクトする方向で検討する事になりました。 サポートありがとうございました。

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

/mobile/.htaccess に、 ErrorDocument 404 /mobile/ httpd.conf に書くなら、<Directory mobileのファイル絶対パス> と組み合わせて。

mohamedo_byson
質問者

補足

早速ありがとうございます。 補足させて頂きます。 .htaccessは使わず、 /mobile/は実体ディレクトリではなく、別ディレクトリへのシンボリックリンクになっています。

関連するQ&A

  • apacheで ErrorDocument 404が利かない??

    apacheで ErrorDocument 404が利かない?? httpd.confにErrorDocument 404を設定しているのですが、まったく利きません・・・。 たいしたことをやっていないのに、機能しないので、 手順に間違いがあるのか分からなくなってしまいました。 ■環境 OS:WindowsXP apache 2.2.14 ■手順 1.apacheをダウンロードしてインストールする。 2.httpd.confに、以下を記述する。そのほかは何もいじらない。 ErrorDocument 404 /index.html 3.apacheを再起動する。 4.ttp://localhost/にアクセスする。「It works!」を表示することを確認する。 5.ttp://localhost/xxx.htmlにアクセスする(存在しないファイル)。  →index.htmlに返らず、ブラウザデフォルトの「ページが見つかりません」になる。 他にも試しました。 ドキュメントルートにerror.htmlを作成して、 ErrorDocument 404 /error.html にしてみたり。 でも、やっぱり「ページが見つかりません」になります。 ErrorDocument以外に何か設定する箇所はありますか? apacheに詳しい方がいらしたら、教えて欲しいです。 よろしくおねがいします。

  • ApacheのRewrite

    ApacheのRewriteで苦戦しております。 http://foo.jp/user/HOGE/index.php?no=xxx&pass=xxx へのアクセスを裏では、 http://foo.jp/rewrite/index.php?id=HOGE&no=xxx&pass=xxx にしたいんですが、なかなか上手くいきません。 どのような正規表現にすればよいのでしょうか? ご指導よろしくお願い致します。

  • apacheの設定

    dnsの設定で192.168.0.15<=>www.hoge.barという適当な割り当てを行っています. また,apache上にpukiwikiをダウンロードしてttp://192.168.015/pukiwikiでアクセスできるようになっています. URLをすべて入力すると面倒くさいので,ttp://192.168.0.15とアクセスするとttp://192.168.015/pukiwikiにリダイレクトしてくれる設定を/etc/apache2/site-available/defaultに書きました. <Directory /> Options FollowSymLinks AllowOverride None RedirectMatch ^/index.html$ ttp://192.168.0.15/pukiwiki </Directory> ですが,このままだとttp://www.hoge.barにアクセスするとttp://192.168.0.15/pukiwikiになってしまいます. ttp://www.hoge.baならば,ttp://www.hoge.ba/pukiwiki ttp://192.168.0.15ならば,ttp://192.168.0.15/pukiwiki とリダイレクトしたいのですが,可能でしょうか? よろしくおねがいします.

  • apacheのRewrite機能で同一ドメイン内のリダイレクトしたい

    現在のサイトのTOPページを諸事情により、1つ下のディレクトリに変更したいと考えています。htmlでリダイレクトは出来るのですが、可能であれば、.htaccessでリダイレクトしたく、いろいろと方法をさがしており、Rewrite機能というのを使えば出来るらしいという事までは分かりました。しかし、具体的な方法が不明です。 現在のTOPページ:http://aaa.com/に来たアクセスをすべて、自動で新しいTOPページ:http://aaa.com/hoge/にリダイレクトさせたいと考えております。 分かる方、ご教授をお願い致します。

  • 404ページなどのエラーページのURLについて

    ロリポップにてサイトを作っているのですが、404エラーが起きたときに、 URLがたとえば「hoge.jp/naiyo」という存在しないファイルにアクセスしたときに、私の場合表示されるだけでなく、「hoge.jp/404」というエラーページにURLが移動してしまうのですが、OKWaveなどのサイトを見てみると、URLは移動しません。 どうすればURLをそのままでエラーページを表示できるでしょうか? ちなみにエラーページ表示のhtaccessの内容は 「ErrorDocument 404 http://hoge.jp/404」 と設定しました。

  • 個別のErrorDocumentの設定(Apache2.0.47)

    VirtualHostを使って複数のサイトを運営しているのですが、 .htaccessを使わず、httpd.confの設定でそれぞれ個別に ErrorDocumentを設定するにはどのようにすればいいのでしょうか? <VirtualHost *:80>の中でErrorDocumentを設定してみてもAdditionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. こんな風なエラーが出てしまいます。 #.htaccessを使ってErrorDocumentを設定すると、以下のようなことが起きるのが嫌なのでこの質問をしました。 http://***.com/hoge.cgiが500だったとすると ここへアクセスするとhttp://***.com/505.html のようにURLが変わってしまう よろしくお願いいたします。

  • URLでフォルダの最後のスラッシュを省略した時の挙動

    Apache サーバを立ててみました。 一応、普通に動いているのですが、サイト配下のフォルダにアクセスする際、 URLの最後のスラッシュを付け忘れるとドメインの www が除去されて、「ページが見つかりません」に なってしまいます。 OK → http://www.example.jp OK → http://www.example.jp/hoge/ http://www.example.jp/hoge でアクセス(最後のスラッシュを付けない)すると http://example.jp/hoge/ となってしまうのはなぜ? Apacheの設定?

  • カスタマイズした404ページが設定できない

    404ページと.htaccessの格納場所は、 http://www.***1.jp/***2/***3/404.html http://www.***1.jp/***2/***3/.htaccess 1) .htaccessの記述が下記の場合… ErrorDocument 404 /***1/***2/404.html →404.htmlの画像、cssがきちんと表示されない 例えば、存在しないページhttp://www.***1.jp/***2/***3/***4/index.htmlへ飛ぼうとした場合に表示されたhtml内の画像やhrefを見てみると、http://www.***1.jp/***2/***3/***4/404.htmlを読もうとしている 2) .htaccessの記述が下記の場合… ErrorDocument 404 /404.html →カスタマイズした404ページが表示されず、下記文言が追記されている。 Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. 3) .htaccessの記述が下記の場合… ErrorDocument 404 http://www.***1.jp/***2/***3/404.html 問題なく表示。でも、リダイレクトになってしまい、これはあまり推奨されてないようです。 アドバイスいただけないでしょうか。 よろしくお願いします。

  • SUSE LinuxでApacheを設定しております。

    SUSE LinuxでApacheを設定しております。 設定を行い、表示可能な状態までできたんですが、 フォルダー名の大文字・小文字をURLで区別して、表示 できなくなってしまいます。 例 www.foge.com配下フォルダー フォルダ名:HOGE URL www.foge.com/hoge 現状、上記でアクセスできないのですが、アクセスできるようにしたいと 考えております。 その際ってどこかに設定があるのでしょうか? すいませんが、ご教授お願いいたします。

  • RedHat LINUX7.2のapacheについて

    上記のLinuxにデフォルトでapacheを入れる設定にしてインストールしたのですが、 インストール後、404や403などのエラーコードのHTMLを書き換える為、 /etc/httpd/conf/httpd.conf に # Error documents ErrorDocument 404 ERROR/404.html ErrorDocument 403 ERROR/403.html のように書き換え、/var/www/html/ のapacheの最初のindex.htmlが入っていた ディレクトリにERRORディレクトリを作り、中に403.html等を入れているのですが、 403のエラーメッセージが、最初のまま変わりません。 ErrorDocument 403 "403 error とした場合には、ちゃんとただのテスストで「403 error」と応答が返るように変える事ができたのですが、 htmlの表示と指定方法になると何故か難しくて、わかりません。apacheの公式ページの通りに書いたと思うのですが。何故でしょうか。