私は(sometext)に変更した(sometext)というスラッグを使ったカスタム投稿タイプを持っていましたそしてそれは素晴らしい作品
だから、例えば:
のようなURLの私の投稿
http://localhost/sometext/innerposts
にリダイレクトされます
http://localhost/someothertext/innerposts
私のアーカイブページではありません
基本的に私はリダイレクトしたいです
http://localhost/sometext/ to
http://localhost/someothertext/
私の.htaccessファイルに、私はそれが機能するように文字列を追加してみました
RewriteRule ^/sometext$ ^/someothertext/$ [R=301,L]
しかしそれは失敗します。
私は.htaccessの書き換えがとても苦手です。誰かが私を助けてくれるなら、私は本当に感謝します。
ありがとう。
アーカイブページへのリンクはWordPressの書き換えルールに保存されます。これらのルールはあなたのWordPressシステムのフロントエンドにあるいくつかの場所を見つけるために使われます。カスタム投稿タイプのslug
を変更すると、通常のページは新しい場所に直接リダイレクトされますが、アーカイブページは変更されません。これは書き換えルールが再生成されないためです。
これを解決するには、設定 - >パーマリンクに移動してパーマリンク構造をもう一度保存し、ページをリロードするとアーカイブページがロードされます。正しく.
あなたの.htaccess
の書き換え規則は必要ないでしょう。
また、決してあなたの.htaccess
にWordPressが書き換えるものを除いて書き換え規則を入れてはいけません。いくつかの規則を追加したい場合は、 書き換えAPI を使用してこれを行います。
それが言及されたように。 .htaccessに書き換え規則を決して入れないで、代わりに 書き換えAPI を使用してください。あなたの目標を達成するために、あなたのfunctions.phpまたはサイト特有のプラグインで以下のコードを使ってください:
add_action( 'generate_rewrite_rules', 'my_rewrite_rules' );
function my_rewrite_rules( $wp_rewrite )
{
$wp_rewrite->rules = array(
'sometext/(.+?)/?$' => $wp_rewrite->index . '?someothertext='.$wp_rewrite->preg_index( 1 ),
'sometext/(.+?)/([0-9]{1,})/?$' => $wp_rewrite->index . '?someothertext='.$wp_rewrite->preg_index( 1 ). '&paged=' . $wp_rewrite->preg_index( 2 ),
) + $wp_rewrite->rules;
}