3

ローカルの開発マシンに、Windows 7 で動作する Apache 2.2.16 と PHP 5.3.5 を含む PDT + Zend Server をダウンロードしました。私の PHP では、ユーザーが存在しないドキュメントを要求したときに、header("Http/1.0 404 Not Found") を使用します。私のローカルサーバーでは、すべてがうまく機能します。カスタムの ErrorDocument が表示され、満足しています。

Linux サーバーで Apache 2.2.38 と PHP 5.3.8 を実行している共有ホストにすべてをアップロードすると、突然、ErrorDocuments が PHP からのものでない場合にのみ機能します。

PHP.ini、httpd.conf、または .htaccess に、Apace が PHP からのエラー コードを認識できるようにする設定がありますか?

これを調査したところ、「Apache は、いったん PHP に渡されたステータス コードを認識しない」ということしかわかりませんでした。このような場合、開発サーバーが正しく動作するのはなぜですか?

編集

わかりやすくするために、.htaccess を次に示します。

# Use PHP 5.3
Action application/x-hg-php53 /cgi-sys/php53
AddHandler application/x-hg-php53 .php 

#Deny Include Files
<Files *.inc>
order deny,allow
deny from all
</files>

#Provide custom error documents
ErrorDocument 404 /Errors/Http404.php
ErrorDocument 403 /Errors/Http403.php
ErrorDocument 500 /Errors/Http500.php

ユーザーが myhost.com/jdkslfjdls に移動すると、ユーザーは Errors/Http404.php のコンテンツを受け取るため、.htaccessが機能します。

ただし、ユーザーが myhost.com/images/GetImage.php?Id=5 に移動すると (画像 #5 がない場合)、ユーザーはコンテンツを受け取りません。

(内部 IP アドレス)/images/GetImage.php?Id=5 に移動すると、ユーザーは Errors/Http404.php の内容を受け取ります。

ユーザーが GetImage.php?Id=6 にアクセスしようとすると、同様の問題が発生します (画像 #6 があるが権限がない場合)。共有サーバーでは、空白のページまたはブラウザーの 403 エラーが表示されます。私の開発サーバーでは、実際のカスタム 403 エラー ページが表示されます。

繰り返しますが、.inc ファイルにアクセスしようとすると、共有サーバーで 403 エラー ドキュメントが機能します。

4

2 に答える 2

0

.htaccessファイルがサーバーで使用されていることを確認しますか?ホスティング会社が、グローバルなApache設定をローカルの.htaccessファイルで上書きすることを許可していない場合があります。

ただし、仮想ホスト構成にアクセスできる場合は、次のディレクティブを確認してください。

AllowOverride All

代わりにあなたが見つけた場合

AllowOverride None

上記のように変更してみてください。

于 2011-09-16T15:57:55.377 に答える
0

あなたが持っているかどうかを確認してください

AllowOverride ALL

Web サイトに対応する VirtualHost 内の Directory ディレクティブの下の apache.conf 内

とにかく、それが考えられる原因の 1 つかもしれません。もう 1 つの原因は、mod_rewrite を有効にしているかどうかを確認することです。

ubuntu または debian ベースのシステムでは、mod_rewrite.load を /etc/apache2/mods-available/mod_rewrite.load から /etc/apache2/mods-enabled/mod_rewrite.load にリンクまたはコピーするだけです。

ただし、書き換えは何もする必要はありませんが、.htaccess ディレクティブで mod_rewrite が必要になるケースを見てきました。

そのため、Apache conf ファイルでこれらのことを確認してください。何も起こらない場合は、@ phpcip@gmail.com までご連絡ください。

それがうまくいくことを願っています。

于 2011-09-16T16:25:53.440 に答える