同じルートディレクトリに Cakephp を実行しているサイトとワードプレスサイトを一緒に持っています。次の問題があります。Wordpress は、ホームページの URL が wordpress のインデックスを介してルーティングされるように、最初にリクエストを処理します。これで、cakephp コードには、サイトのいくつかの特別な機能を管理するコントローラーのリストが含まれています。次のような書き換えルールがありRewriteCond %{REQUEST_URI} !^/users
ます。www.example_site.com/users
これにより、wordpress がこのページを見つけられない場合に 404 エラーを生成する代わりに、URL がCakePHP フレームワークにアクセスできるようになります。
このルールはワードプレスのルーティングをバイパスして、リクエストを CakePHP に送信できるようにします。Cakephp コントローラーのそれぞれに同様のルールを使用しています。問題は、ユーザー ページを持つ wordpress プラグインを使用していたことです。このユーザー ページは、次のように URL に引数を追加しましたwww.example_site.com/users/some_dudes_username
。これらのユーザー ページへのリンクの一部は、まだ Google またはユーザーのブックマークにインデックスされているため、私たちが作成した書き換えルールにより、(以前のように 404ing ではなく) wordpress をバイパスし、代わりに Cakephp と 404 にヒットします。Cakephp ユーザーコントローラー関数のいずれかが正しくリダイレクトされるようにする方法を考えています (数が少ないため、ホワイトリストに登録する方法のようです)。のように存在しないwww.example_site.com/users/some_dudes_username
FAQ ページにリダイレクトされます。動作しているように見える次のホワイトリスト コードがありますが、他のすべてを正しくリダイレクトする方法がわかりません。
RewriteCond %{REQUEST_URI} !^/admin/users
RewriteCond %{REQUEST_URI} !^/users/login
RewriteCond %{REQUEST_URI} !^/users/admin_login
RewriteCond %{REQUEST_URI} !^/users/logout
RewriteCond %{REQUEST_URI} !^/users/admin_logout
RewriteCond %{REQUEST_URI} !^/users/admin_index
# Then I need a rewrite rule to take everyone else to the FAQ page.
助けてくれる人に感謝します。