パラ付URLをパラ無URLに変更

2010/09/06

CMSにもよるけどトップページでも引数がつく場合がある。
「/」止めでページは表示されるんだけど、他のページからトップへリンクをすると引数がつく。
で、SEO的にはリンクで使うURLは出来る限り統一させるってのがある。
※「http://www.hoge.com/」のトップページへのリンクを「/」有りの「http://www.hoge.com/」、「/」無しの「http://www.hoge.com」、ファイル名を記載した「http://www.hoge.com/index.html」って感じでバラバラにしないってこと。

冒頭でもいった通りCMSにもよるけどトップページでも引数がつく場合があるんだ。
下記の例だとURLに「option=com_content&view=frontpage&Itemid=1」(トップページへのリンクのURL)ってのがつく場合は「/」に301リダイレクトする。

  1. <Files ~ “^\.(htaccess|htpasswd)$”>
  2. deny from all
  3. </Files>
  4. RewriteEngine on
  5.  
  6. RewriteCond %{HTTP_HOST} ^(www\.hoge\.com)(:80)? [NC]
  7. RewriteRule ^(.*) http://hoge.com/$1 [R=301,L]
  8.  
  9. RewriteCond %{QUERY_STRING} ^option=com_content&view=frontpage&Itemid=1$ [NC]
  10. RewriteRule . http://hoge.com/? [R=301,L]
  11.  
  12. order deny,allow

まずは、6・7行目でURL「www」ありの「www.hoge.com」が含まれる場合は「www」無しの「http://hoge.com/」に301リダイレクト。
次に、9・10行目で「option=com_content&view=frontpage&Itemid=1」がURLに含まれていたら「http://hoge.com/」へ301リダイレクト。

URLの引数はRewriteCondでパターンマッチできないので「RewriteCond %{QUERY_STRING}」を使用。
リダイレクト元URLの引数を引き継がせたくない場合は、リダイレクト先のURLの末尾に「?」を入力。

参考用:htaccessのURLの書き換え Rewrite

新着(ニュース関連以外)

2017-11-09
PCでプッシュ通知ってのをしたい。
2017-11-06
PHPのバージョンを上げたらwikiが壊れたっぽい。
2017-08-03
formのinputでmaxlengthを使うとFirefoxでバグってた。他のブラウザでも気づかずにバグってたかもしれない。
2017-07-19
折れ線グラフをもう少しゆるやかに・・・というか何というか・・・調べていくと「移動平均」っていう言葉にたどり着いた
2017-07-10
FuelPHPの1.8をダウンロードして使っていたらセッションが使えないということに気付いた。