• 締切済み

URLにファイルが無いのにあるように見せる方法

環境はApacheの2系で、phpは4系です。perlは5系です。 例として、 以下のURLにアクセスすると普通にページを見ることができ、 http://testserver/photo/page01.html でも、ftp上にはファイルが存在しない ftp://httpd/(photoディレクトリさえ存在しない このようなことは可能ですか?

みんなの回答

回答No.2

DocumentRoot上にpohoto/page01.htmlが存在しないというだけの話ならば、 .htaccessにModRewriteがあって、なんらかのスクリプトで制御してるなら そうさせることが出来ますね。

webwebwebweb
質問者

お礼

別のファイルにリダイレクトをするんですね。 これも試してみます。 ありがとうございます。

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

>以下のURLにアクセスすると普通にページを見ることができ、 >http://testserver/photo/page01.html >でも、ftp上にはファイルが存在しない >ftp://httpd/(photoディレクトリさえ存在しない >このようなことは可能ですか? ftpならそのアカウントのホームディレクトリは指定できるでしょうから、photoディレクトリが存在しない場所を指定することもできるでしょう。 # で、その場所をhttpd.confでDocumentRootに指定したり。 httpd.confのLocationディレクティブやDirectoryディレクティブを使えばDocumentRoot下にないディレクトリ指定を取らせることも可能でしょう。 # HTTPプロトコルを使うSubversionとかがやっているかと。

webwebwebweb
質問者

お礼

なるほど ロケーションディレクティブを使うんですね ありがとうございます。 参考になりました!

関連するQ&A

  • OSの環境変数をPHPで取得する方法

    PHPでOSの環境変数に設定されている値を取得したいです。 PHPはApacheの環境変数しか取得できないみたいです。 APACHEのDocumentから以下の方法を見つけました。 ----------------------------------------------------------- httpd プロセスを起動したシェルの環境から CGI スクリプトと SSI ページに渡す環境変数を一つ以上指定します。 例 PassEnv LD_LIBRARY_PATH ----------------------------------------------------------- httpdプロセスを起動したシェルとあるのですが、Apapcheユーザの ホームディレクトリはありません。 この場合どこに設定すればよいでしょうか? /etc/bachrcや/etc/profile に設定してもダメでした。 ApacheDocumentの下記の方法だとgetenv()で取得できます。 ------------------------------------------------------------ 環境変数を設定し、それを CGI スクリプトと SSI ページに渡すようにします。 例 SetEnv SPECIAL_PATH /foo/bin ------------------------------------------------------------ なので最初の方法でもいけるのではないかと思います。 環境 PHP:521 Apache:2.0.52 OS:RedHatEL4.4

    • ベストアンサー
    • PHP
  • windows上のapacheで日本語ファイル名の読み出し

    WindowsXPにApache1.3をインストールし、localhostとして使用しています。perl/cgiやphp5は問題なく作動していますが、localhostからアクセス可能なwindows上の日本語directory名や日本語ファイル名にアクセスできません。(リンクを貼ったり読み出しができません) 日本語ファイル名/ディレクトリー名にアクセスするためのhttpd.confの設定法を教えてください。

  • URLのパラメータを取得しリンクに渡すには?

    Javascriptで、URLのパラメータを取得し、リンクにパラメータを渡したいです。 例えば、現在のURLが、 http://www.hogehoge.com/hoge.php?page=hoge1だとします。 そのページに、様々なリンクがあるとします。 <リンク例> http://www.hogehoge.com/moge/moge.php http://www.hogehoge.com/boge/boge.php http://www.yahoo.co.jp/auctionxx.html このうち、/moge/以下のページへのリンクにのみ、自動で現在のURLのパラメータを渡したリンクにしたいです。 つまり、 http://www.hogehoge.com/moge/moge.php ↓ http://www.hogehoge.com/moge/moge.php?page=hoge1 というリンクにしたいです。 当然現在のURLにパラメータが存在しない場合は、そのままのリンクになります。 また、他のディレクトリや他のドメインのサイトにはパラメータを渡さず、変更せずにそのままのURLのリンクにしたいです。 <リンク例> http://www.hogehoge.com/moge/moge.php ○変更 http://www.hogehoge.com/boge/boge.php ×変更なし http://www.yahoo.co.jp/auctionxx.html ×変更なし よろしくお願いします。

  • Windowsでphpを動かす方法について。

    どうも、初めまして。 今、WIndows98上で、phpを動かしたいと思っています。そこで、 私は、windows98se+apache1.3.12+php3.0.16をインストールしました。 ActivePerlも入っています。perlは動いているのでapacheは正常に動作してい ると思います。しかし、.phpをブラウザから呼ぶと、「Internal Server Error」 が出てしまいます。いろいろ格闘してみたのですが、うまくいきません。 教えてください。ちなみに、dosプロンプトでphp.exe -vとするときちんとヴァージョンが表示されます。 私の環境は以下のとおりです。 phpはc:\php3に apacheはC:\Program Files\Apache Group\Apacheに 展開し、php3内のDLLは全てc:\windows\systemにコピーしました。 httpd.confを編集し、php3.iniを編集しc:\windowsにコピーしました。 以下がエラーログとiniファイル等の内容です。 長くなってしまいましたが、原因がわかる方おられましたら、よろしくお願いします。 =====errorlogの内容。 [Mon Apr 09 01:00:19 2001] [error] [client 127.0.0.1] (2)No such file or directory: couldn't spawn child process: c:/program files/apache group/apache/htdocs/test01.php3 =====phpファイルの内容。 <?php echo ("test<BR>"); ?> =====httpd.confの編集個所。 ScriptAlias /php3/ "c:/php3/" AddHandler cgi-script .php3 AddType application/x-httpd-php3 .php3 AddType application/x-httpd-php3-source .phps Action application/x-httpd-php3 "c:/php3/php.exe" =====php3.iniの編集個所。 include_path = "c:\php3" doc_root = "c:\Program Files\Apache Group\Apache\htdocs" extension_dir = "c:\php3" ; directory in which the loadable extensions (modules) reside

    • ベストアンサー
    • PHP
  • Apacheのhttpd.confの設定方法がわかりません

    ただいまPHPとPerlを勉強しようと思い、環境設定に取り組んでいます。 PHPの本を買ってきて、その本に付属しているPHPDEV5というPHPとApache2とMySQLの付いているものをインストールしました。PHPの方は何の問題もなく動作しています。 Perlも本を買ってきたんですが、Perlの本の方もサーバとしてApache2を使っているんですが、最初にインストールしたPHPDEV5付属のApache2のhttpd.confファイルの中身が違っていて、Perlの解説本のとおりにhttpd.confファイルを修正できないため、どのように修正すれば、CGIができるようになるのか分かりません。 どなたかもし設定ファイルの方法がわかる方がいましたら、教えてください。よろしくおねがいします。

    • ベストアンサー
    • Perl
  • httpd.confのLoadModule記述方法について

    以下の環境にてサーバー構築を考えているのですが、 httpd.confのLoadModule記述にミスがあるようで、 Apacheを起動することができません。 【環境】   OS :WindowsXP   HTTPD:Apache 2.2.3   PHP :Ver5 【httpd.conf】   LoadModule php5_module c:/php5/php5apache2.dll   AddType application/x-httpd-php .php 昔のPHPインストーラーは自動的にhttpd.confを更新してくれた覚えがあるのですが、 最新のPHPは単なるZIPファイルになり設定が面倒になりました。 行った作業は以下になります。 1.Apacheのインストール 2.テストページの確認 3.PHPの解凍 4.php5ts.dllをc:\WINDOWS\system32にコピー 5.php.ini-distをphp.iniにリネームしてc:\WINDOWSにコピー 6.php.iniの「extension_dir」を「c:\php\ext」に設定 7.上記httpd.confの追記内容を記述する 8.Apacheを再起動するが失敗する 手順としてはサイトによって違いますが、 大体のことは試しましたが駄目でした。 どこが悪いのか全くわからないのですが、 問題を解決するにはどうしたらよいでしょうか?

  • PHPの設定ができません。

    PHP初心者です。 ApacheとPHPの連携がうまくいきません。 環境は、OSがWindowsXP、Apache2.2.21、PHP5.2.17です。 エラーの内容は、 httpd: Syntax error on line 130 of C:/Apache2/conf/httpd.conf: Cannot load C:/ph p/php5apache2_2.dill into server: \x8ew\x92\xe8 ... httpd.confの設定は 130:LoadModule php5_module "C:/php/php5apache2_2.dill" 131:PHPiniDir "C:/php" ディレクトリに間違いはありません。php5apache2_2.dill も存在しています。 どうしたらいいのでしょうか?

    • ベストアンサー
    • PHP
  • fopenでURL内容の取得のエラー

    fopen(<URLを指定>,'r'); としたときにエラーが発生してしまいます。 この現象は環境によって出る場合と出ない場合があります。 以下はいずれもphpinfo()で取得したPHPとApacheのバージョンです。 <エラーが出ない環境> PHP Version 4.2.3 Apache/1.3.27 <エラーが出る環境> PHP Version 4.3.9 Apache/1.3.31 (Win32) PHP/4.3.9 エラーメッセージは以下のようなものです。 Warning: fopen(<ここにアクセスしたURLが表示>): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in <エラーが出ているプログラムと、fopen()の行が表示> よろしくお願い致します。

    • 締切済み
    • PHP
  • Smartyを使ってhtmlファイルを生成する方法で悩んでいます

    Smartyとphpで動的にページコンテンツを生成するサイトをつくっています。 例えば、 index.php?m=front → front.phpにアクセスしてfront.tplを返す index.php?m=page2 → page2.phpにアクセスしてpage2.tplを返す index.php?m=page3 → page3.phpにアクセスしてpage3.tplを返す … という動作をさせています。 ただ設置しているレンタルサーバーが最近重く動作が鈍重になってしまい、phpファイルからただのhtmlファイルに換えたいと思っています。 上の例で言えば、 index.php?m=front → front.html としたいのです。 はじめからfront.htmlを用意し、file("front.tpl")でテンプレートを読み込んでファイルを書き換えようと試しましたが、データベースの情報を含むページにそのデータの内容が反映されないところで行き詰っています。 何かしらの方法で、 php → Smarty → html生成 ということができないでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • httpd.confのURLリライトについて

    httpd.confのURLリライトについてご質問です。 環境 CentOS5.2 Apache 2.2.3 tomcat 5.5.25 Apacheとtomcatの連携でWebサーバを作成しております。 httpd.confでURLリライト設定をしておりますが、リライトが行われません。 以下httpd.confの設定内容です。※AAをBBにリライト AcceptPathInfo On RewriteEngine On RewriteRule BB AA [R] また.htaccessも試したのですが同じ結果です。 (httpd.confはAllowOverride Allとしてあります。) 設定後のApache、tomcatの再起動も行っております。 どなたか、原因に心当たりのある方、いらっしゃいますでしょうか?