web-dev-qa-db-ja.com

Index.phpを含むようにプレビューURLを書き換えます

当社の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.phpwww.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' );

関数や正規表現が間違っているのか、それとも別の時点で書き換えが必要なのか、私にはわかりません。

1
L Ebert

書き換えないでください。 HTMLファイルの内容をテーマのfront-page.phpテンプレートファイルに入れます。

1

.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テスター を使って検証されテストされています。