1

私はすべてを正しく行いました。私のサーバーでは mod_rewrite が有効になっており、仮想ホストのパスは AllowOverride が All に設定されており、.htaccess ファイルは他のユーザーと同じ書き換えルールで配置されています。しかし、クリーンな URL パスを使用して一部のページにアクセスするのに問題があります。したがって、ページの 90% では、クリーンな URL で問題なく機能します。しかし、その 10% については、そうではありません。

それらのページが存在するかどうかを確認しました。存在します。index.php?q=[path] を使用してアクセス可能かどうかを確認しました -- そしてアクセス可能です。クリーンな URL パスからのみアクセスできます。

この謎を解いてくれる人はいますか?

4

2 に答える 2

1

q=path/to/menu/item を介してページにアクセスできるため、Drupal ではなく mod_rewrite に問題があることは明らかです。

書き換えで何が起こっているかをデバッグするには、問題のあるページをリクエストしている間に書き換えログをオンにして末尾に -f するか、代わりに index.php または page.tpl.php の先頭にある print_r($_GET) を確認してください。実際に求められているもの。

潜在的に機密性の高い .htaccess をここに投稿しても問題ない場合は、投稿してください。設定ミスがないかどうかを確認することができます。

于 2010-06-17T20:23:03.000 に答える
0

mod_rewriteには、途中で URL を台無しにする長年のバグがいくつかあります (問題の URL にエスケープ文字はありますか?)。Drupal がこれを行うかどうかはわかりませんが、他の PHP アプリでは、正しいエントリポイントに到達したら、書き換えをやり直すコードを追加する必要がありました。

残念ながら、Drupal は検索パスを取り込むことができませんPATH_INFO(他の多くのアプリがそうであるように) mod_alias

于 2010-06-17T18:56:45.607 に答える