MovableType から WordPress への移行したら、アンダーバーがハイフンに変わった記事がいくつかあり、大量の404が発生してしまった。
初日の404エラーは少なかったので手で直したが、後日280件も出てたのでDB内を調べてみたが、guid、post_name が関係してそう。
色々調べたところ、WordPressのSupportにQueryがあった。
UPDATE wpposts SET guid =? REPLACE(guid, ‘_’, ‘-‘), post_name = REPLACE(post_name, ‘_’, ‘-‘)
参照元:
Change permalink hyphen to an underscore???
これでUpdateしたら、Sitemap.xmlを生成しなおして、Google Webmaster Tools で修正済みにして様子見
これ以外にも、カテゴリーがCat?というのから、category/カテゴリー名/になったので、.htaccess で転送してあげた方が将来の事も考えると良さそう。(今後 Cat~で管理するつもりは無いので)。カテゴリー名は「経済」のURLエンコード
Redirect /cat4/ http://<MyDomain>/category/%E7%B5%8C%E6%B8%88/
そして更に、mt-search.cgi に対するリクエストも.htaccessに書きくわえる必要があった。WordPressの元のRewrite処理と、mt-search.cgi、カテゴリーの転送を合わせると以下の様な.htaccess ファイルとなる。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} tag=(.+)limit=([0-9])
RewriteRule ^mt/mt-search.cgi$ http://%{SERVER_NAME}/?s=%1 [R=302,L]
RewriteRule ^index.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Redirect /cat4/ http://<MyDomain>/category/%E7%B5%8C%E6%B8%88/
これでOK!
と思いきや、Mt-search.cgiのクエリーにURLエンコードされたものが入ってくると、%を%25に変換してしまうようで、正常に検索できない模様。なんかサーバーConfigかPHPで書き換えって事らしいが、.htaccessで文字列置換なんて出来なさそうだしな。どうしたものか・・・
引き続き調査中。
ひとまず、ある程度の404は減るだろう。