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]
を: