アンダーバーをハイフンに変更

Share on FacebookTweet about this on TwitterPin on PinterestShare on LinkedInShare on Google+Share on RedditShare on TumblrEmail this to someone

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は減るだろう。

Bookmark the permalink.

Comments are closed