1

apache2 conf にいくつかの書き換えルールを書き込もうとしていますが、機能していません。以下は、apache conf の仮想ホスト ブロックです。私のOSはubuntu 12.04サーバーエディションです

    DocumentRoot /var/www/xyz

    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/xyz>
            Options Indexes FollowSymLinks MultiViews
            #AllowOverride None
            AllowOverride All
            Order allow,deny
            #Order deny,allow
            allow from all
     </Directory>

次のように、いくつかの書き換えルールを含む.htaccessファイルがあります

オンの ReWriteEngine
RewriteRule ^/matchV/(.*) http://host:8080/$1
RewriteRule ^/other/(.*?)$ /httpdcontent/$1

rewrite モジュールは apache で有効化されています。

私が何か欠けているかどうか誰かに教えてもらえますか。

ありがとう、

サンディープ

4

1 に答える 1

0

まず、最初の書き換えルールでドル記号が抜けているようです。次に、「デバッグ」の状況で [L] を使用することをお勧めします。このように、一度に 1 つのルールだけを修正する必要があります。

書き換えがどのように行われるかを確認する必要がある場合は、ログ ファイル /var/log/apache2/error.log および /var/log/apache2/access.log を確認する必要があります。サーバーが処理しようとした URL と、それがどのように失敗したかがわかります。このことから、何が欠けているのか、何が「多すぎる」のかがわかるはずです。

私が見たところ、それは書き換えベースに関係していると言えます。Web サーバーのルートはおそらく /var/www で、仮想ホストのディレクトリは /var/www/xyz です。次のようなものを使用して修正できると思います...

RewriteBase /xyz

とにかく、構成を編集し、ログのチェックをやめないでください。そこから、サーバーが処理しようとしている URL/ファイルが表示され、使用するパスを修正できるはずです。

于 2013-07-14T03:25:09.740 に答える