特定のフォルダでエイリアスしたい

このQ&Aのポイント
  • Apache2で、特定のフォルダでエイリアスする方法を教えてください。
  • 特定のフォルダ内のコンテンツを別のURLにリダイレクトする方法を教えてください。
  • Apache2の設定で、特定のフォルダを別のフォルダのエイリアスとして設定する方法を教えてください。
回答を見る
  • ベストアンサー

特定のフォルダでエイリアスしたい

ズバリ回答を書いていただけるかたのご教授をお願いします。 Apache2で、/site1/ のコンテンツ内でのみ /site2/xxx.html への要求が あったら強制的に /site3/xxx.html に遷移させたいと思っています。 (/site2/フォルダは実在せずに/site3/が実在します。) 当初/site1/.htaccessのrewrite等でできるかと思ったのですが、 /site2/.htaccessでrewriteしないとうまく行きませんでした。 しかし既に書いたとおり、/site2/フォルダは実在しません。 httpd.confは事情により変更できません。.htaccessでAliasのような ことができれば良いかと思ったのですが書き方が分かりませんでした。 よろしくお願いします。

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

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

/site2 が無いなら、/.htaccess に書くしかないですね。httpd.confが触れないということですが、/.htaccessも触れないなら無理です。 /site1の下しか触れないならコンテンツ自身を書き換えるしかないです。 /site1 のコンテンツからの場合だけrewriteするなら、 RewriteCond %{HTTP_REFERER} ^/site1/ RewriteRule ^/site2/(.*) /site3/$1

kenken_pa
質問者

お礼

なるほど、上位ディレクトリで設定してリファラーで 制限をかけるわけですね。ありがとうございました。

関連するQ&A

  • apacheの入ったフォルダを動かしたい

    apacheの入ったフォルダを動かしたい apacheの入ったフォルダを動かしたいのですが、うまくいきません。おそらく何かをしていないのだと思うのですが、一体どうすればいいのかわかりません。私が認識している、apacheの入ったフォルダを動かすために必要なことは、「(1)httpd.confの設定を変える。(2)ファイルを動かす。(3)apacheを再起動する。」です。しかしこれだとhttpd.confの参照先が移動前の位置になっていてうまく動きません。他のファイルも覗いてみたり、confフォルダの中のoriginalフォルダの中のhttpd.confも同様にいじってみたりしたのですが、よくわかりません。他に何をすればいいのでしょうか? apacheは2.2を使用しています

  • RewriteRule有効について(Apache設定)

    Apache2をWindows2kにインストールし運用しています。 RewriteRuleを行うが有効になりません。 httpd.confと.htaccessは、以下のように記述しています。 .htaccessは、レンタルサーバーに転送しテストすると正常に動作します。 と言うことは、ローカルサーバーの環境設定がまずいと言うことになるかと思うのですがどうしても分かりません。 ご教授の程、宜しくお願いします。 -----(httpd.conf)----- Options All AllowOverride All LoadModule rewrite_module modules/mod_rewrite.so -----(httpd.conf)----- -----(.htaccess)----- RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^info.html+ info.php RewriteRule ^k/index.html$ k/index.php RewriteRule ^k/([0-9A-Za-z]+)/$ k/index.php?id=$1 -----(.htaccess)-----

  • 拡張子htmlでphpが動作するフォルダと動作しないフォルダを作成する方法

    【やりたいこと】 htdocs フォルダ直下に約100個のフォルダがあるのですが、 その中の特定のフォルダだけは、 拡張子 html で php が動作しないようにしたいです(特定のフォルダ以外では拡張子 html で php が動作して欲しいです)。 また、拡張子 php に関してはどのフィルダでも php が動作するようにさせたいです。 【試したこと】 1. httpd.confに AddType application/x-httpd-php .php .html と記述(拡張子 html で php が動作する事を確認)。 2. httpd.confに <Directory "/usr/local/apache2/htdocs"> AllowOverride All </Directory> と記述し、ドキュメントルート以下で .htaccess が使えるようにする。 3. htaccess に AddType application/x-httpd-php .php と記述し、拡張子 html で php の実行が無効化されないか試してみましたが、 拡張子 html で php が実行されてしまいNG。 4. htaccess に php_flag engine off と記述し、拡張子 html で php の実行が無効にならないかなと試してみて、 無効化されるのは確認しましたが、 そのフォルダ内では拡張子 php でも php の動作が無効化されてしまいNG。 ここで手詰まりとなってしまいました。 以上、よろしくお願いします。

  • PHPとApacheの連携で、困ってます。httpd.confどこにあるのでしょう?

    PHPの設定をしました。Apacheのインストールもしました。PHPとApacheの連携を行う必要があるのですが、Apacheの設定ファイルであるhttpd.confを編集する必要があり、「%APACHE\HOME%/conf」フォルダのhttpd.confを変更しなければならないのですが、httpd.confと、「%APACHE\HOME%/conf」フォルダがどこにあるかわかりません。わかる方教えてください。大変困っています。よろしくお願いします。

    • ベストアンサー
    • PHP
  • httpd.confのチェックの仕方

    Apache.exeと、httpd.confのフォルダが違うときのWindows コマンドプロンプトを使ってのhttpd.confの構文チェックの仕方を教えてください。 cdを使ってフォルダをあけるまでしか分かっていません。 Apache.exeの場所 C:***\server\apache2\bin httpd.confの場所 C:\***\etc\httpd

    • ベストアンサー
    • PHP
  • Windows版Apacheの設定

    現在AnHttpdを利用していますが、Apacheに変更するつもりです。Apacheを使うのは初めてでして、設定で試行錯誤している段階です。 .htaccessを使わずにApacheのhttpd.confの設定だけで.jsファイルをダウンロードさせない(ソースを表示させない)ようにすることは可能でしょうか? 応答速度を上がるために.htaccessは極力使うのを避けるほうがよいとあるサイトで説明されていました。よろしくお願いいたします。

  • Cのソースをapacheがコンパイル

    httpd.confに<IfModule mod_alias.c>などと書いてありますが、これらはCのソースですよね? apacheがmod_alias.cを見つけることができたらapacheが起動時にデフォルトコンパイラを使ってコンパイルするという意味なんでしょうか? <IfModule mod_alias.exe>や<IfModule mod_alias.dll>であれば何の疑問もありません。

  • apacheのrewriteについて

    apacheのrewriteについて 現在Google検索でうちの各ページが独自ドメインではなくレンタルサーバ会社の仮ドメインが表示されていて困ってます。 しかもhttps://~~~になっており、証明書のエラーが出て1回では接続できない状態です。 原因はhttps://www.hogehoge.co.jp/cgi-bin/aaa.cgiにcgi-binではないフォルダにある画像ファイルをリンクさせたからのようです。現在はcgi-binフォルダに画像を入れてリンクさせています。 取り急ぎの対応としてapacheのhttpd.confにrewriteを使用するとうまくいくのではないかという話を聞きました。 うちの独自ドメイン名:http://www.hogehoge.co.jp/ サーバ会社の仮ドメイン名:https://abc.foo.com/ httpd.confにどのように書くとうまく検索結果から一発で表示できるようになるのでしょうか? よろしくお願いいたします。

  • 複数サイトで拒否IPを共有する方法

    1台のサーバーにバーチャルホストを設定して20個程度のサイトを運営しています。 サーバーサイドのプログラムでアタックと思われるアクセスを検知(※)し、 .htaccess に deny from xxx.xxx.xxx.xxx を動的に追加していますが、全サイトで 個別に .htaccess を設置するのは効率が悪いかなとも思っています。 ※UAがない、ホスト名がなくsetup.phpを探している等々で判断 .htaccessではなく、httpd.confにdeny fromを追加していけば全運営サイトで 拒否IPを共有できますが、それだと定期的に httpd reload で設定ファイルを 再読み込みしなくてはなりません。 特に .htaccess に拘っているわけではありませんので、もっとスマートな管理方法が あればご指導ください。

  • まだphpmyadminのタイトル画面がでません

    Vine Linuxです。 apacheとphpinfoのテスト用画面は正常に出力されます。 しかし、ブラウザでphpmyadminのタイトル画面を表示したときには、そのディレクトリの中(phpmyadmin)のファイル構成が出てくるだけでした。 {インストール先ディレクトリ}/index.php でアクセスしようとするとNotFoundになりますので、 apacheのhttd.confに次のような記述を追加しました。 Alias /phpmyadmin/ "/var/www/html/phpmyadmin" <Directory "/phpmyadmin"> Options -Indexes FollowSymLinks Order deny,allow Allow from xxx.x.x.x Allow from xxx.xxx.xx.x <Directory> (xxxというのは接続するPCのアドレスが入ります) また、下記のサイトで出ていました、 http://ziddy.japan.zdnet.com/qa4458048.html 1. httpd.conf の DirectoryIndex ディレクティブに index.php が含まれていない。 2. httpd.conf に AddType application/x-httpd-php .php がない。 3. httpd.conf で Options -Indexes FollowSymLinks が指定されていない。または Options Indexes FollowSymLinks が指定されている。 の設定対応も行っています。 ここまでの設定でもブラウザでの表示は変化ありません。 足りない設定など、改善に向かうヒントがありましたら、ご教授いただけないでしょうか? よろしくお願いします。