SilverStripe をインストールしようとしていますが、インストール中に、フレンドリー リンクが機能していないというエラーが返されます。ただし、mod_rewrite が有効で、AllowOverride が All に設定されています。Webminをcpとして専用サーバーでCentOS Linuxを使用しています(はい、知っています..私の選択ではありません)。
3 に答える
そのエラー メッセージが表示された場合でも、インストーラーはできる限りの設定を行っているはずです。
問題はさまざまな場所にある可能性があるため、この質問に答えるのは少し難しいですが、以下にトラブルシューティング ガイドをまとめてみました。
注:以下のリンクの多くは、Stack Overflow が私をスパマーであると考えているため、意図的に切断されています。;-)
サイトが http://www.example.com にあると仮定して、http://www.example.com/dev/build にアクセスしてみてください。「Environment Builder (以前の db/build)」という見出しのページが表示されるはずです。それが機能する場合、書き換えに問題はなく、インストーラーはエラーでそのメッセージを表示しました。
404 が表示される場合は、http://www.example.com/sapphire/main.php?url=dev/build を試してください。これは同じ機能にアクセスしますが、mod_rewrite をバイパスします。「Environment Builder (以前の db/build)」という見出しが表示され、以前の URL には表示されなかった場合は、mod_rewrite に問題があり、他の問題ではありません。
- .htaccess ファイルの内容を確認してください。このように見えるはずですが、行がある場合があり
RewriteBase
ます。 - 「asdfsahjadsfasdf」などのジャンク テキストを .htaccess ファイルに入れて保存してみてください。サイトを開きます。それはあなたに500エラーを与えますか?そうでない場合は、
AllowOverride All
設定が機能していません。正しい場所に設定されていることを確認してください。覚えておいてください - それはあなたのApache設定ファイルにある必要があり、.htaccess
. 関連する構成ファイルにアクセスできない場合は、ISP にこの質問への回答を依頼する必要があります。 それでも問題が明らかにならない場合は、何が起こっているのかを調査できるかどうかを確認するために、書き換えルールをいじる必要があります。この行を変更してみてください:
RewriteRule .* sapphire/main.php?url=%1&%{QUERY_STRING} [L]
これに(書き換えルールをリダイレクトルールに変えます):
RewriteRule .* sapphire/main.php?url=%1&%{QUERY_STRING} [L,R]
http://www.example.com/dev/build に再度アクセスしてください。どこかにリダイレクトされましたか? そうでない場合、mod_rewrite は機能していません。http://www.example.com/sapphire/main.php?url=dev/build にリダイレクトする必要があります。他の場所にリダイレクトしていますか?たとえば、余分なジャンクが
?url=
パラメーターに挿入されていませんか? これは、SilverStripe をサブディレクトリで実行している場合に発生することがあります。この場合、RewriteBase
設定がそのサブディレクトリに設定されていることを確認してください。のようなものRewriteBase /mysubdir
。
それでもフレンドリ URL を機能させることができない場合は、おめでとうございます。本当に厄介なエッジ ケースが見つかりました。上記の手順に従って発見したことの詳細を、SilverStripe IRC チャンネルまたは www.silverstripe.org のフォーラムに投稿してください。
手順1..htaccessファイルにゴミを入れて、Webサーバーでエラーが発生するかどうかを確認します。