Apache 2.2でリダイレクトが動作しない

このQ&Aのポイント
  • 特定のディレクトリ(test)に、IEからアクセスがあった場合のみ指定のページへリダイレクトさせたいのですが、以下のようにhttpd.confに追記しても有効になりません。
  • Directoryセクションコンテナを外すと有効になりますが、そうすると全てのディレクトリに適用されてしまうので困っています。
  • 正しい記述方法や別の手段があれば教えていただけると幸いです。
回答を見る
  • ベストアンサー

Apache 2.2 で リダイレクトが動作しない

特定のディレクトリ(test)に、IEからアクセスがあった場合のみ指定のページへリダイレクトさせたいのですが、 以下のように httpd.conf に追記しても有効になりません。 DocumentRoot は "/var/www/html" です。 <Directory "/var/www/html/test"> BrowserMatch "MSIE" ie=yes BrowserMatch "Lunascape" ie=!yes BrowserMatch "Sleipnir" ie=!yes BrowserMatch "Opera" ie=!yes RewriteEngine On RewriteCond %{ENV:ie} yes RewriteRule ^/(.*)$ /var/www/html/ie.html [L] </Directory> Directory セクションコンテナを外すと有効になりますが、 そうすると全てのディレクトリに適用されてしまうので困っています。 正しい記述方法や別の手段があれば教えていただけると幸いです。 よろしくお願いします。

  • 20030
  • お礼率69% (9/13)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

<Directory~>を外して、 RewriteRule ^/test/(.*)$ /var/www/html/ie.html [L] にするのでは? ※DocumentRootが/var/www/htmlだと仮定して、ですが。

20030
質問者

お礼

ありがとうございます! 無事できました。

関連するQ&A

  • apacheでhttpsのアクセスをhttpへリダイレクトさせる方法に

    apacheでhttpsのアクセスをhttpへリダイレクトさせる方法について質問です。 最近勉強でapacheの設定をいじるようになりました。しかし、正規表現も理解しづらく苦労してます。 色々調べるとhttpsからhttpのリダイレクトは見かけるのですが。。 例としては https://www.test.com→http://www.test.com https://www.test.com/→http://www.test.com https://www.test.com/index.html→http://www.test.com を想定しています。 httpd.confに書けばいいですかね? とりあえず一番上のパターンだけやってみました。ただスラ有とindex有の場合の 正規表現がうまいこと理解できてなくてわかりません。 RewriteEngine On RewriteCond %{HTTP_HOST} ^www.test.com(.*) RewriteRule ^(.*)?$ http://www.test.com$1 [L,R] よろしくお願いします。

  • httpからhttpsへのリダイレクト方法

    すいません、よくわかりませんので教えて下さい。.htaccessに記述してhttpにアクセス来たものをhttpsへリダイレクトしたいです。 今の状況は下記です。 AddHandler application/x-httpd-php53 .php RewriteEngine On # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(sanetsu.com) RewriteCond %{REQUEST_URI} !^/(sanetsu.com)/ RewriteRule ^(.*)$ http://www.sanetsu.com/$1 [L] # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(www.burikama.com) RewriteCond %{REQUEST_URI} !^/(www.burikama.com)/ RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L] # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(burikama.com) RewriteCond %{REQUEST_URI} !^/(burikama.com)/ RewriteRule ^(.*)$ http://www.burikama.com/$1 [L] # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress すいません、上記の記述をどのように変更したらhttpsへリダイレクトさせることができますでしょうか?前任のweb担当の方と連絡が付かないので教えていただけたらありがたいです。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • SSLのリダイレクトについて

    sslのリダイレクトの作業を急いでやらないといけないのですが、sslに関しては全くの初心者なので調べながらいろいろやってみましたがどうしてもうまくいかず困っています。。 Wordpressでサイトを作成していてドメイン直下の.htaccessにリダイレクトの記述をしています。 サーバーはGMOのiCLUSTAで、sslはジオトラストです。 http://○○○.jp/ にアクセスした場合に、 https://ssl.○○○.jp/ へリダイレクトされるようにしたいです。 .htaccessの記述内容です # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress RewriteEngine on RewriteCond %{HTTPS} on RewriteRule ^(.*)$ https://ssl.○○○.jp/$1 [R=301,L] この記述をしていますが、リダイレクトされたりされなかったりの不安定な状態です。 されないことの方が多いのでどの条件で動いているのかがわかりません。 RewriteCond %{HTTPS} on を、 RewriteCond %{HTTPS} off にするとリダイレクトされますが、処理がループされていますという表示が出てしまいます。 どのような記述をすればうまくいくのでしょうか?

  • Apache2.0.54にてRewriteRule内に/が含まれるパスが認識されない

    お世話になります。 TOCMAT5.0.3/Apache2.0.54 の環境にて 特定ページへのアクセスが来た際にsslにてアクセスを行いたく 以下のような設定を行いました。 .htaccessにて --------- RewriteEngine on RewriteBase / RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^test/test.html$ https://%{SERVER_NAME}/secure.html [R,L] RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^test.html$ https://%{SERVER_NAME}/secure.html [R,L] --------- test.htmlでアクセスすると正常にリダイレクトが行われるのですが RewriteRule内に「/」が含まれているものはうまく動作しません。。 以下のようなパスに変更などして試しているのですがうまくいきません。 ^test\/test.html$ ^test//test.html$ ^test/*$ 他のサーバーにて、同様のRewriteRuleは正常に動作しますので、 mod_jk.conf httpd.conf の設定に不備があるように考えていますが検討が付きません。 ご教授よろしくお願い致します。

  • Apacheで条件付リダイレクトをしたいのです。

    Apacheで条件付リダイレクトをしたいのです。 例えば、 http://www.abcde.com/ に Googlebot-Mobile がクローラで回ってきた時のみ、 http://mobile.abcde.com/ に飛ばしたいのです。 要はGooglebot-Mobileが来たら、モバイルページに飛ばしたく、 Googlebot-Mobile以外が来たらそのまま表示したいのです。 設定がよくわからないのですが、 以下で合っていますでしょうか? 1.URLそのものをリダイレクト Googlebot-Mobileが http://www.abcde.comに来た場合 http://mobile.abcde.comに飛ばす ■設定  RewriteEngine On  RewriteCond %{Googlebot-Mobile} on  RewriteCond %{http://www.abcde.com} on  RewriteRule ^(.*)$ http://mobile.abcde.com$1 [R=301,L] 2.特定のページに来た時のみリダイレクト Googlebot-Mobileが http://www.abcde.com/index.phpに来た場合 http://mobile.abcde.comに飛ばす ■設定 RewriteEngine On RewriteCond %{Googlebot-Mobile} on RewriteRule ^/index.php(.*)$ /http://mobile.abcde.com/ [R=301,L] どなたか教えていただける方いらっしゃいましたらよろしくお願い致します。

  • .htaccessでリダイレクトしたいです@さくら

    .htaccessでwwwなしのサイトにリダイレクトをかけたいのですが、うまくいきません。 色んな方法がサイトにありそれを試しているのですが、 一瞬テストでうまくいったと思ったのですが、それ以降うまくいかなくなってしまいました。 使用しているプロバイダはさくらインターネットです。 今までに試したコマンドは下記です。 --------------------------- <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^(www.hoge\.com)(:80)? RewriteRule ^(.*) http://hoge.com/$1 [R=301,L] </IfModule> --------------------------- RewriteEngine on RewriteCond %{HTTP_HOST} www¥.hoge¥.com RewriteRule .* http://hoge.com%{REQUEST_URI} [R=301,L] --------------------------- .htaccess を設置しているディレクトリは /home/hoge/www になります。 ぜひ教えていただけないでしょうか。よろしくお願いいたします。 また、.htaccessは変更してどのくらいで反映されるのか、補足的に教えていただけると助かります。 以上、よろしくお願いいたします。

  • htaccess リダイレクトの記述方法

    「wwwなし http://www.abc.net/」から 「wwwありに統一 sslありのhttps://www.abc.net/」にリダイレクトしたいのですが、以下の記述で合っていますでしょうか。よろしくお願いします。 Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^abc.net RewriteRule ^(.*)$ http://www.abc.net/$1 [R=301,L] RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    • ベストアンサー
    • HTML
  • wwwありかつhttpsへリダイレクトさせたい

    .htaccessに以下の記述をしていますが、 ブラウザでURLに”xxxx.jp”と"http://xxxx.jp"と入力してアクセスすると、 https://xxxx.jpにリダイレクトされてしまます。 ドメインxxxx.jpを.htaccessに記載せずにhttps://www.xxxx.jpにリダイレクトさせる記述をご存知でしょうか? wwwありの場合"www.xxxx.jp"、"http://www.xxxx.jp"は意図したとおり”https://www.xxxx.jp"に転送されています。 --- RewriteEngine On RewriteCond %{HTTPS} off RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ---

    • 締切済み
    • CGI
  • apacheの動作が…

    DocumentRoot /var/www/html にした場合PHPの実行ができずに403エラー /var/www/testにするとindex.phpは見えるのだが、 それ以下のディレクトリの参照ができない と、いう症状で困っています。 <Directory>を書いてみたり色々してはいるのですが、対処できそうもありません。 ここでは?と思う所があればご助言お願いいたします。 ちなみにFedora+apache2+php5です。 test以下に置いた時index.phpは動作してるので、そこら辺ではないのだと思いますが・・・

  • apache,ssl,virtualhost

    VPS上にいくつかのサブドメインでバーチャルホスト(名前ベース)を運用しています。 実現したいのは以下の設定です。  ブラウザに入力されたURL => リダイレクト先 (1)http://hoge.net => https://hoge.net (2)http://www.hoge.net => https://hoge.net (3)https://www.hoge.net => https://hoge.net SSL証明書が有効なのは、『hoge.net』と『hige.hoge.net』です。『www.hoge.net』は有効ではありません。 wwwについては、あっても無くてもアクセス可能とし、あった場合はリダイレクト(いわゆる無しで統一)したいので、設定してあります。 (1)と(2)は問題ないのですが、ブラウザに(3)を入力するとセキュリティの警告エラーが出てしまいます。 その警告を無視して進むとリダイレクトされて、正常に表示されます。 SSL証明書の追加取得以外で、この警告を回避してリダイレクトする方法を教えていただきたいです。 環境:apache2.2 設定内容:httpd.confではなくvhost.confファイルに下記を記述。(見易いように、先頭空白を全角に変更してあります。) <Directory /var/www/html/*/public_html>   Options FollowSymLinks   AllowOverride All   Order allow,deny   Allow from all </Directory> <VirtualHost *:80>   ServerName hoge.net   Redirect permanent / https://hoge.net </VirtualHost> <VirtualHost *:443>   ServerName hoge.net   DocumentRoot /var/www/html/hoge/public_html   SSLEngine on   SSLCertificateFile ++++++++++++++++   SSLCertificateKeyFile ++++++++++++++++ </VirtualHost> <VirtualHost *:80 *:443>   ServerName hige.hoge.net   DocumentRoot /var/www/html/hige/public_html   RewriteEngine on   RewriteCond %{HTTPS} off   RewriteRule . https://hige.hoge.net%{REQUEST_URI} [R=301,L]   SSLEngine on   SSLCertificateFile ++++++++++++++++   SSLCertificateKeyFile ++++++++++++++++ </VirtualHost> よろしくお願いいたします。