2011-06-29 11 views
0

私はWordPressのインストールがあり、数ヶ月前にテーマを変更することにしました。新しいテーマは、最初のテーマにあった8ページから次のテーマで10ページに変更する必要があったため、新しいテーマにはプレビューテーマに含まれていたページがすべて含まれていませんでした。htaccess、ページ区切り、不足しているページ、ホームカテゴリにリダイレクト

問題はGoogleがページ/アーカイブ/タグ/タグ名/ページ/ 5を探していますが、そのページは存在しません。

私がする必要があるのは、そのページが存在しないために、ルートタグまたはカテゴリページのように見えるようになる307の(一時的に移動された)リダイレクトが存在しない場合、私のhtaccessファイルにアーカイブ/タグ/タグ名/

私はそれを試しています でRewriteBase/

# Check if any tag has a page that not exists 
# and redirect to first page of this category 
RewriteCond ^archives/tag/.*/page/[0-9]+(/?)$ !-f 
RewriteRule ^archives/tag/(.*)/page/[0-9]+(/?)$ http://www.my-site.ext/archives/tag/$1/ [L,R=307] 

# Check if any category has a page that not exists 
# and redirect to first page of this category 
RewriteCond ^archives/category/.*/page/[0-9]+(/?)$ !-f 
RewriteRule ^archives/category/(.*)/page/[0-9]+(/?)$ http://www.my-site.ext/archives/category/$1/ [L,R=307] 

# Default wordpress rewrite rules 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

RewriteEngineを

しかし、上記のルールは、最初のページでも既存のページをリダイレクトします

何か助けてください? :)

答えて

1

私はあなたがする必要があると思うのは、WordPressのレベルではなく、Apacheでこれを処理すると思います。

テーマののfunctions.phpファイルで

、「template_redirect」アクションをフックしてみてください、このような何か:あなたは[other conditions]$some_better_urlのために自分自身を右ロジックを把握する必要があります

function nikos_redirect_paginated_404() { 
    if (is_404() && [other conditions]) { 
    wp_redirect($some_better_url, '307'); 
    exit; 
    } 
} 

add_action('template_redirect', 'nikos_redirect_paginated_404'); 

(この一般的な考え方は、ワードプレスのquery.phpスクリプトで発見されwp_old_slug_redirect機能に基づいています)

+0

あなたが私を与えたのコードスニペットは、それは非常に有用でした! :)私はいくつかの変更を加え、適切に動作しています! :) 種類regads :) –