当社のWordPress Webサイトには、静的なHTMLホームページがあります。ドメインに対するリクエストはindex.html
ページを返します。
これは私たちの目的には役立ちましたが、編集中に投稿やページをプレビューしようとすると問題を引き起こしました。プレビューURLにはindex.php
が含まれていないため、すべてのプレビュー要求には静的なホームページが表示されます。例えば。、
http://www.example.com/?page_id=7848&preview=true
OR
http://www.example.com/?post_type=solution&p=6480&preview_id=6480&preview_nonce=730eb2844c&preview=true
どちらもホームページを表示します。 index.php
とwww.example.com/
の間に手動で?<querystring>
を挿入してもページプレビューが表示されますが、面倒です。
functions.php
で次のことを試みました。これは.htaccess
ファイルを更新しますが、それでもホームページは表示されます。
function custom_rewrite_preview( )
{
add_rewrite_rule(
'(.*)\?(.+)&preview=true$',
'$1index.php?$2&preview=false',
'bottom'
);
}
add_action( 'init', 'custom_rewrite_preview' );
関数や正規表現が間違っているのか、それとも別の時点で書き換えが必要なのか、私にはわかりません。
書き換えないでください。 HTMLファイルの内容をテーマのfront-page.phpテンプレートファイルに入れます。
.htaccess
に次の書き換え規則を追加できます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^taxo=([^&]+)&([^=]+)=([^&]+)&([^=]+)=([^&]+)&([^=]+)=(.*)$
RewriteRule ^/?$ /%1/%2/%3/%4/%5/%6/%7? [L,R=301]
</IfModule>
ブラウザのキャッシュと、この構造に従っているドメインをすべて消去します。
http://www.example.com/?page_id=7848&preview=true
にリダイレクトされます。
http://www.example.com/index.php?page_id=7848&preview=true
これは私の側で htaccessテスター を使って検証されテストされています。