※最後の行は、必ず改行を入れて終わらせること
※コメントは行のはじめに#
環境に応じたリダイレクトや、URLの内部書き換えを可能にするモジュール
Rewriteモジュールを有効化する
RewriteEngine On RewriteBase /
#.gif .jpg .png .ico ファイルはキャッシュを利用する
例:キャッシュ有効期限2592000秒(30日)の場合
<Files ~ ".(gif|jpe?g|png|ico)$">
Header set Cache-Control "max-age=2592000, public"
</Files>
#http://www.なしに統一
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.ドメイン.com
RewriteRule ^(.*)$ http://ドメイン.com/$1 [R=301,L]
#index.htmlはなしで統一
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://ドメイン.com/$1 [R=301,L]
#URLが変わった場合(同じドメイン内 の1ページ)
RewriteEngine on
RewriteRule ^/?page1(.*) http://sample.com/page2 [R=301,L]
ディレクトリが変わった場合(同じドメイン内 )
RewriteEngine on
RewriteRule ^/?box/(.*) http://example.jp/box2/$1 [R=301,L]さらにエンコードやQueryStringもきちんと引き継ぐ
RewriteEngine on
RewriteRule ^/?box/(.*) http://sample.com/box2/$1 [R=301,L,QSA,NE]
すべてのパスを別サイトに転送する
RewriteEngine on
RewriteRule ^/?(.*) http://sample2.com/$1 [R=301,L,QSA,NE]
参考サイト:http://d.hatena.ne.jp/tmatsuu/20130725/1374761978
#404ページのファイルを指定
ErrorDocument 404 /404.html
#index.php やindex.cgiを 1ndex.htmlより優先したい場合
DirectoryIndex index.php index.cgi index.html index.shtml
スマートフォン、ガラケー、PCのアクセス振り分け
RewriteEngine on #ガラケー RewriteCond %{REQUEST_URI} !(^/m/) RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOKET|UP.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^(.*)$ /m/ [R,L] # iPod RewriteCond %{HTTP_USER_AGENT} iPod RewriteRule ^$ /s/ [R] # iPhone RewriteCond %{HTTP_USER_AGENT} iPhone RewriteRule ^$ /s/ [R] # iPad RewriteCond %{HTTP_USER_AGENT} iPad RewriteRule ^$ /s/ [R] # Android RewriteCond %{HTTP_USER_AGENT} Android RewriteRule ^$ /s/ [R]
参考サイト:
http://blog.dawgsdk.org/weblog/archives/411011
https://htaccess.cman.jp
http://3bee.jp/2011/12/21/%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3%E3%80%81%E3%82%AC%E3%83%A9%E3%82%B1%E3%83%BC%E3%80%81pc%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E6%8C%AF%E3%82%8A%E5%88%86%E3%81%91/