2017-10-14 2 views
0

私はこの構造を私のWordpressウェブサイトの投稿URLに使用しています。ユーザーは不要なURLのページにアクセスすることができます

Domain.com/%post_id%/%postname%

あなたが同じページに移動します/%postname%の部分を削除した場合は? 私は意味

Domain.com/post_id/postname = domain.com/post_id

ユーザーの訪問domain.com/post_idが取得するときDomain.com/post_idにリダイレクトすることをどのような方法があります/ postname?

答えて

0

初期イベントにaction hookを追加することをお勧めします。多分wpでしょうか?

add_action("wp", function() { 
    if((is_single() || is_page()) && preg_match("!^/\d+/?$!", $_SERVER["REQUEST_URI"])) { 
     http_response_code(301); 
     header("Location: " . get_permalink()); 
     exit; 
    } 
}); 

これは、すべてのリクエストに応じて実行し、そのリクエスト)がページまたはポストであるかどうかをチェックしますb)はREQUEST_URI(= URLのローカル部分)が続く数字が続くスラッシュ、、で始まりますオプションの最終スラッシュ、その他は何もありません。これらの2つの条件が満たされた場合、正しいURLを示すLocationヘッダーを持つHTTP 301応答コード( "リダイレクトPermanent")が返されます。

functions.phpに入れてください。

WordPressが自動的に/ 123/posttiを/ 123/posttitleにリダイレクトするのは面白いですが、/ 123と同じではありません。/123 /は/ 123にリダイレクトされます。投稿したコードスニペットは/ 123と/ 123 /を処理しますが、wordpressは部分的なタイトルのものを扱います。

関連する問題