2016-11-22 4 views
0

htaccessファイルが1つのディレクトリにのみ存在する場合でも、すべてのドメインが影響を受けるWebルート全体がシャットダウン(505内部エラー)する大きな問題があります。私は私のルーティングシステムを実装すると、すべてがこの.htaccessコードで私はlocalhost上で正常に動作します書き換えルールは特定のユーザエージェントでのみ機能しますか?

web root 
    -- [domainA] 
     (domainA files like the .htaccess file) 
    -- [domainB] 
    -- [domainC] 
    (web root files) 

:しかし

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule . index.php [L] 

私のファイル構造は、したがって、すべてのドメインが別々のフォルダで、このように編成されています私は、同じ.htaccessコードを使用して、自分のリモートサーバでルーティング作業を行うために何時間もテストしています。私はファイルをアップロードし、私がwww.domainA.comのようなメインディレクトリにいるときにも動作します。

しかし、www.domainA.com/signupのような私のウェブサイトをクリックしているすべてのリンクは、505 Internal Server Errorにつながります。ドメイン全体が長い間応答していません。リモートサーバーから.htaccessファイルを削除する必要があります.15〜30分後にもう一度アクセス可能です。これはまた、この問題をデバッグするのが非常に困難になります。また、全体のウェブルートは、[domainA]のような別個のドメインフォルダ内にある.htaccessファイルだけであっても、他のすべてのドメインに到達できないため影響を受けるようです。

RewriteCond %{HTTP_USER_AGENT} ^fake-user$ 
    RewriteEngine On 
    RewriteBase/
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule . index.php [L] 

この方法では、それは驚くほどローカルホスト上のように動作し、私はその理由を得ることはありません。

は、それから私は、特定のユーザーエージェントは fake-userという名前だけで私のルールを適用しようとしました。当然のことながら、オーディエンスを fake-userというユーザエージェントに制限して、自分のウェブサイトとやりとりすることは望ましくありません。だから、現在他のすべてのユーザーが私のウェブサイトを "クラッシュ"させてしまいます。これを引き起こす可能性のある説明と、この問題をすべてのユーザーのために自分のlocalhostのようにする方法を教えてください。それは違うのときのみ書き換えて

RewriteRule ^(?!index\.php$). index.php [NS,L] 

を:

答えて

1

は、それが再帰可能性のように、これであなたのルールを交換してみてくださいね。

関連する問題