0

同じルートディレクトリに 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_usernameFAQ ページにリダイレクトされます。動作しているように見える次のホワイトリスト コードがありますが、他のすべてを正しくリダイレ​​クトする方法がわかりません。

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.

助けてくれる人に感謝します。

4

1 に答える 1

1

あなたの問題を完全に理解しているかどうかはわかりませんが、次のようなものが必要なようですRewriteRule:

RewriteRule ^/users/.*$ /URI/to/faq.html [R]

RewriteCond条件は直後のルールにのみ適用されるため、このルールは直後にある必要があります。

お役に立てれば。

于 2013-09-13T11:08:41.717 に答える