私は最近、WordpressがURL全体を送信していないときにそのURLを自動補完しようとしていることに気付きました。例えば。このような投稿URLがあります。
http://www.mysite.com/some-post-title
私が以下のURLを閲覧するならば:
http://www.mysite.com/some-post-ti
URLはWordpressに送信されていますが、Wordpressはhttp://www.mysite.com/some-post-title
への301リダイレクトを行っています。
どうすればこの動作を無効にできますか?
私は redirect_canonical
関数がtemplate_redirect
にフックされていると思います。あなたはそれを無効にすることができるはずです:
remove_filter('template_redirect', 'redirect_canonical');
しかし、それはかなり複雑で、いくつかの重要なSEO機能を実行するので、それを実行したいかどうかを本当に考慮する必要があります。
サイトのURLに基づいて、着信リンクを適切なURLにリダイレクトします。
検索エンジンは、www.somedomain.comとsomedomain.comが同じ場所にある場合、それらは2つの異なるURLであると見なします。このSEOの機能強化により、すべての着信リンクをいずれかにリダイレクトすることで、重複するコンテンツに対するペナルティが防止されます。
フィード、トラックバック、検索、コメントポップアップ、および管理URLのリダイレクトを防止します。非パーマリンクをサポートしていないIIS 7、ページ/投稿のプレビュー、WP admin、トラックバック、robots.txt、検索、またはPOSTにリダイレクトしません。 _ リクエスト。
ユーザーが正確なWordPressクエリに基づいて存在しないURLを入力したときにも正しいリンクを見つけようとします。代わりに、正しいページを特定するためにURLの解析またはクエリを試みます。
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/canonical.php#L13
次のmayはSEOコンポーネントを台無しにせずに自動補完を殺しますが、私はそれを約束することはできません。 コードはほとんどテストされていません 私はこれを無効にしたくなかったので。確かにredirect_canonical
を勉強しなければなりません。
function kill_404_redirect_wpse_92103() {
if (is_404()) {
add_action('redirect_canonical','__return_false');
}
}
add_action('template_redirect','kill_404_redirect_wpse_92103',1);
この「推測」を自動的に行わせるため、これは非常に無責任なようです。どちらが正しいページであるかを定義するための何らかの手段があれば、もっとオープンになるでしょう。
シーケンスとして作成されたページが多数ありますが、この自動推測では、開始ページとは対照的に、シーケンス内のどこかにある(ランダムに?)ページで応答することを誤って選択しています。
更新:これは既知の動作であり、ここで検討されています: https://core.trac.wordpress.org/ticket/16557
FitPMの答えのフォローアップとして - 自動推測動作を無効にするプラグインが作成されました。
それは2017年8月2日の時点でWordpress 4.8で私のためにうまく働きます。プラグインはこちらです: https://wordpress.org/plugins/disable-url-autocorrect-guessing/