WordPressサイト全体を1つのWordPressページにリダイレクトする必要があります。一種のメンテナンスモードですが、リダイレクトは公開されたWordPressページに移動する必要があります。残念ながら、私が見せる必要があるメンテナンスページは他のWordPressプラグインを使わなければなりません。
私はこれを可能にするメンテナンスモードプラグインを知りません。せいぜい、カスタムHTML/CSSコードを書くことができます。
私は.htaccess mod_rewriteルールを考えていました。しかし、私はmod_rewriteが非常に苦手です。
まず、I 無効化された正規リダイレクト 。
その後、私は使用しようとしました:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/index.php?page_id=813$
RewriteRule ^(.*)$ /index.php?page_id=813 [R=307,L]
ただし、これらの規則はリダイレクトループを生成します。 page_id=813
はもちろん私のメンテナンスページのIDです。
誰かが公開ページにリダイレクトするメンテナンスモードプラグインを知っていますか?
あるいは、誰かが私を手助けしてmod_rewriteルールを修正させることができますか? /wp-admin
をリダイレクトのルールから除外できる場合は、さらに歓声が上がります。
あなたは実際にWordPress自身の中からこれをすることができます、混乱して、過剰に設計された.htaccessの修正を考え出す必要はありません。
フロントエンドでのみ起動するtemplate_redirect
フィルタにフックすることができます(wp-adminにはありません)。次にis_page()
関数を使用して、IDが813のページを表示しているかどうかを確認します。表示されていない場合は、wp_redirect()
関数を使用してそのページにリダイレクトします。
add_action( 'template_redirect', function() {
if ( is_page( 813 ) ) {
return;
}
wp_redirect( esc_url_raw( home_url( 'index.php?page_id=183' ) ) );
exit;
} );
リダイレクトは302「一時的な」HTTPヘッダーで行われるため、メンテナンスモードに最適です。ボットや検索エンジンは、サイトが間もなく稼働することを認識します。ただし、恒久的にサイトを移動している場合は、リダイレクトに301「恒久的」HTTPヘッダーを使用することをお勧めします。これを行うには、wp_redirect
関数に2番目のパラメーターを追加します。例:
add_action( 'template_redirect', function() {
if ( is_page( 813 ) ) {
return;
}
wp_redirect( esc_url_raw( home_url( 'index.php?page_id=183' ) ), 301 );
exit;
} );
私は@sheaによって受け入れられた答えを1ファイルのプラグインに埋め込み、2つのオプションを追加しました:管理者以外のユーザーだけをリダイレクトする&任意のURLにリダイレクトします。
興味があれば、Github =>https://github.com/Idearia/wp-redirect-website-to-urlからプラグインをダウンロードしてください。
プラグインのオプションはとても簡単です。当分の間、それらはプラグインファイルにハードコードされていますが、もし私たちがそれを要求すればオプションページを作ることを考えるかもしれません:
Githubページの情報を更新しました=> https://github.com/Idearia/wp-redirect-website-to-url 。
このプラグインはとても基本的なものです。上級ユーザーは、代わりにWordPress.orgプラグインリポジトリで利用可能な多くのメンテナンスプラグインのうちの1つを検討するかもしれません。
あなたがプラグインの実行に問題があるかどうか私に知らせてください。
もっと簡単な解決策を選びます。私の仮定は、あなたが誰かにただ一つのページだけを見ることを望み、あなたのドメインに対するどんな要求に対しても_ WPページが見えることは必要ないということです。
それでは、HTMLページを作成し、CSSでスタイルを設定し、そのページをホスティングプラットフォームの別のフォルダに配置してください。ページがあなたが望むように見えることを確認してください。
それからあなたのドメインをその新しいフォルダに向けてください。ほとんどのホスティングプラットフォームでは、ドメインのベースフォルダを指定できます。だからあなたのドメインはその新しいベースフォルダを指す。複雑なhtaccessリダイレクト、WPプラグイン、またはWPに接続するための特別なフィルタは不要です。
または、すべてのコンテンツを現在のドメインルートフォルダから移動し、その場所に単純なHTMLファイルを配置することもできます。
あなたのドメイン上のどのページへのリクエストに対しても、開催地に「グローバルリダイレクト」があるかもしれません。
どちらの方法でも、ドメイン全体に1つのページしかないというニーズに対する単純な解決策になります。
あなたが本当にhtaccessソリューションを望むならば、これを使いなさい:
RewriteEngine on
RewriteRule ^(.*)$ http://www.example.com/ [R=permanent,L]
..あなたの実際のドメインとの置き換え。またSEOを幸せにします。