0

私が開発しているアプリケーションは、特定のファイルディレクトリ構造を使用しています。mod_rewriteファイルと.htaccessファイルを使用することで、ユーザーにとって使いやすいURLを管理できます。ローカルサーバーでは正常に動作しますが、運用サーバーでは失敗します。明らかに、.htaccessが起動する前に、サーバーは404エラーをスローします。

これが私が取り組んでいる.htaccessです(以下では(1)として参照されます):

IndexIgnore *
#Options +FollowSymLinks
RewriteEngine on

RewriteOptions inherit

RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^(.*)$ /~extranet/extranet/$1 [NC,L,QSA]

サーバーでは、404を返します。

サーバーは要求されたページを見つけることができません:

<IP-ADDRESS>/~extranet/extranet/dev/foo/

(ポート80)

実際、phpinfo()はロードされたモジュールの中でmod_rewriteをリストしていますが、リダイレクトは失敗しているようです。

サーバーは新品です。(役立つ場合は、404ページにApache / 2.0.63(Unix)mod_ssl / 2.0.63 OpenSSL / 0.9.8e-fips-rhel5 mod_auth_passthrough / 2.1 mod_bwlimited / 1.4 FrontPage / 5.0.2.2635 PHP / 5.2.8 Serverがリストされています)

どこで間違い/設定ミスを探す必要がありますか?

更新:詳細

ファイル/フォルダの構造と使用される各.htaccessは次のとおりです。

<IP-ADDRESS>/~extranet/.htaccess (1)
<IP-ADDRESS>/~extranet/extranet/
                              L .htaccess (2)
                              L/dev/
                                   L .htaccess (3)
                                   L index.php
                              L/stable/
                                   L .htaccess (3)
                                   L index.php

(1)すべてのリクエストをフォルダ「extranet」にリダイレクトします(2)「/ dev /」を含まないすべてのリクエストをフォルダ「stable」にリダイレクトします(3)/ extranet / foo / bar /をindex.php?app = foo&do=barに書き換えます

4

1 に答える 1

1

ここにチルダがあります:<IP-ADDRESS>/~extranet/extranet/dev/foo/

指定された正規表現はチルダと一致しません。

おそらく、リモートWebサーバーに対してRewriteBaseを適切に指定する必要がありますか?

于 2009-08-12T00:02:51.130 に答える