0

wpCAS プラグインは機能しているようです: WordPressのインストール (つまり)を含む Web サイトにサブドメインがあり、実際の展開のためにCapistranoと共にWordPress GitHub リポジトリを実行しています。このセットアップにより、コンテンツはサブディレクトリ内にあるため、これは重要です。その結果、サイトの管理セクションにアクセスするには、ブラウザに入力する必要があります。ただし、フロントエンド Web サイトにアクセスするには、入力するだけで済みます。十分に混乱しますか?test.mywebsite.comtest.mywebsite.com/wptest.mywebsite.com/wp/wp-admintest.website.com

このすべてをlocalhost MAMP serverでテストしています。test.mywebsite.comまた、Mac のファイルを介しての IP をローカル ボックスにリダイレクトしたことにも価値はありませんhosts。したがって、すべてがローカル ボックスで正しく行われています。

さて、ここに問題があります: RubyCAS サーバーで wpCAS プラグインを使用しています。実際のログインプロセスまですべてが機能します。

wpCAS は、ログイン ページを私の CAS ログインに単純にリダイレクトし、CAS インターフェイスに入力された資格情報を WordPress のデータベースの資格情報と照合するように設計されています。一致するものがあれば、(理論的には) 資格情報がログインして正しく機能している管理ページが表示されます。

このセットアップの結果として、入力すると、認証情報を入力できる CAS インターフェイスに移動しますlocalhost/wp/wp-adminauth.mywebsite.com

ただし、認証情報を CAS インターフェイスに入力すると、代わりに次のようなリダイレクト ループが発生します。

wp-login.php?redirect_to=http%3A%2F%2Flocalhost%2Fwp%2Fwp-admin%2F&reauth=1

wp-admin/

ぐるぐる回って行きます!

なぜこれが起こるのか、問題を解決する方法はありますか?

4

1 に答える 1

1

わかった!プラグインフォルダ内のwpcas.phpファイル内の85〜123行目で、 wpCASwpCASの実際のログイン機能について詳しく説明しています。104行目と108行目では、wpCASが管理ページにリダイレクトする方法について詳しく説明しています。

104

wp_redirect( preg_match( '/^http/', $_GET['redirect_to'] ) ? $_GET['redirect_to'] : site_url( $_GET['redirect_to'] ));

108

wp_redirect( site_url( '/wp-admin/' ));

ただし、これにより(理由は不明ですが)、DOOMのリダイレクトループが発生します。しかし、このヒントのおかげで(Luigi Balzano氏に感謝します)、解決策を見つけました。次のようwp_redirectに、これら2行の関数をに変更します。wp_safe_redirect

104

wp_safe_redirect( preg_match( '/^http/', $_GET['redirect_to'] ) ? $_GET['redirect_to'] : site_url( $_GET['redirect_to'] ));

108

wp_safe_redirect( site_url( '/wp-admin/' ));

これにより、 DOOMのリダイレクトループから抜け出しました。

プラグインは2年前のものですが、WordPressバージョン3.5.1以下でも問題なく動作します。

これがwpCASvagrantsに役立つことを願っています!

于 2013-03-13T17:59:30.767 に答える