0

ドメイン名を使用すると、アプリケーションを保持するサブフォルダーを指すドメイン名を使用して、godaddy でホストされている Zend アプリケーションがあり、その結果、ドメイン名を使用すると 500 サーバー エラーが発生します。Linux ホストを使用しており、パブリック フォルダーへのパスは /Subfolder Name/public であり、ドメイン名がポイントされています。紛らわしいのは、ホスト IP アドレス/サブフォルダー パスでサイトに移動しても問題がないことです。ナビゲーションにドメイン名を使用すると、エラー ログに以下が生成されます。

Request exceeded the limit of 10 internal redirects due to probable configuration error.

調べてみると、これは .htaccess の問題である可能性が高いようです。私のパブリック フォルダーの .htaccess ファイルは次のとおりです。

    RewriteEngine On
    # The following rule tells Apache that if the requested filename
    # exists, simply serve it.
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    # The following rewrites all other queries to index.php. The 
    # condition ensures that if you are using Apache aliases to do
    # mass virtual hosting, the base path will be prepended to 
    # allow proper resolution of the index.php file; it will work
    # in non-aliased environments as well, providing a safe, one-size 
    # fits all solution.
    RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::$
    RewriteRule ^(.*)$ - [E=BASE:%1]
    RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]
4

1 に答える 1

1

最初のルールは内部リダイレクトを防止することになっているため、ルーティング先の最後の書き換えindex.phpが間違っている可能性があります。次のように変更して、ルーティングを簡素化してみてください。

RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::$
RewriteRule ^(.*)$ - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]

に:

RewriteRule ^(.*)$ /index.php [L]

index.phpが別のパスにある場合は/index.php、正しい場所を指すように変更します。

于 2013-04-10T21:50:47.320 に答える