PR(記事内にアフィリエイト広告が含まれています)
スポンサーリンク
Nucleus

生成URLを揃えたい

htaccessでURLリダイレクトという記事において、URLにindex.phpという文字列がないときの対処をしようとして失敗しましたが、今回 yama.kymsさんに教えていただいた方法で無事解決ができました。ありがとうございます!
以下に方法を記載します。


最初からNP_CustomURLやNP_MagicalURLといったURL生成プラグインを導入して、不正なURLを出力しないように運用していれば良かったんですが、いまから導入してもダメですね。
FancyURL形式のURLに対し、クエリ指定を裏側で行って処理する仕組みなので、URL欄はそのままで裏で処理する感じですから、個人的には今となっては導入する旨みが薄いです。画像の指定が相対指定なので躊躇してたんですが、BASEタグで解決できると数年前に知ってたら今こんな状態には……っ!
仕方ないので.htaccessでリダイレクト、と思いきやうちのサーバは記載方法が独特で大変なのです。サブディレクトリに.htaccessを置くとき、リライトした先のURLはサイトのルートからの絶対(?)指定が必要になるようで、http:から書かなくてもいいですけれど、/cccc/と頭につける必要があったりします。他にもまだ独自ルールがあるみたいで、動いたとしても無限ループになったりして、イヤになってきます。
そういうわけで、Nucleus側でリダイレクトできないかと質問してみたら、意外なところを修正すれば大丈夫でした。てっきりコアファイルやプラグインを修正するのかと思ってたら、なんとまぁ。
Nucleusサイトのトップにおくindex.phpファイルの中に、冒頭の一行目のif(strpos($_SERVER[‘REQUEST_URI’],’/?’)) { $url = ‘http://’ . $_SERVER[‘HTTP_HOST’]; $url .= str_replace(‘/?’, ‘/index.php?’,$_SERVER[‘REQUEST_URI’]); header(‘HTTP/1.1 301 Moved Permanently’); header(‘Status: 301 Moved Permanently’); header("Location: {$url}"); exit(0); }

http://www.takehana.tv/cccc/?itemid=1127
をクリックしていただければ、きちんとURLが変更されてるのが確認できるかと思います。記事の最後のツイートやソーシャルブックマークもひとまとめに捕捉できて言う事ありません。
301指定もしてあるので、そのうちクローラーが正規のURLを取得してくれるんじゃないかと思います。これでURLがすっきりしたので安心しました。

コメント

タイトルとURLをコピーしました