|目次 | 太刀魚のウキ釣り | TIDEforWIN付釣果記録用紙 | セルとVBA間データ受渡し | アニメーションGIF | sitemap.xml表示 | htaccess設定 | 掲示板 |
作成日:2015年 1月18日、更新日:2015年 1月20日 作成:太刀魚GMOとくとくBBのWebページのスマートフォン対策と.htaccessの設定内容と設定できない内容を紹介します。
目次
30分でスマホサイト作成 | 勝手にスマホサイトまとめとhtaccessによるPC・スマートフォンの振り分け転送を見て、スマートフォン専用のWebページを作成することにしました。 通常のWebページのURLは、そのままのhttp://e.gmobb.jp/user_name/にして、スマートフォン対応のWebページをhttp://e.gmobb.jp/user_name/sp/にしました。
勝手にスマホサイトまとめには、「5.簡単スマホサイト作成ツール」や「6.無料スマホサイトテンプレート」もあるので、これらから、
developer tool | 内容の説明 |
---|---|
![]() |
スマートフォン対応のWebページの表示を確認するには、Google Chromeを使用しました。 左図の様に右上の「Google Chromeの設定」マークをクリックし、「その他のツール」から「デベロッパーツール」を起動するとスマートフォンでのWebページの表示を確認できます。 |
![]() |
左図の様なスマートフォンでのWebページの表示が行われない場合は、![]() ![]() |
![]() |
サイトの構成
http://e.gmobb.jp/user_name/ <--- PCのWebページ(PCのサイト)
/.htaccess <--- URL転送設定
/cgi <--- PCとスマートフォン共用のcgiディレクトリ
/img <--- PCの画像ディレクトリ
/download <--- PCのダウンロードディレクトリ
/pdf <--- PCのpdfディレクトリ
/sp/ <--- スマートフォン用Webページ(スマートフォンのサイト)
/img <--- スマートフォン用画像ディレクトリ
/download <--- スマートフォン用ダウンロードディレクトリ
/pdf <--- スマートフォン用pdfディレクトリ
|
htaccessによるPC・スマートフォンの振り分け転送に記載されている内容に従い、 PCのサイト(http://e.gmobb.jp/user_name/)にのみ.htaccessファイルを設置します。動作は以下の様になります。
下記にPCのサイト(http://e.gmobb.jp/user_name/)に設置した.htaccessファイルの内容を示します。(全.htaccessファイルの内容)
<IfModule mod_rewrite.c> RewriteEngine on ### URL転送 ### # 参考サイト # http://html-five.jp/195/ # http://blog.dawgsdk.org/weblog/archives/411011 RewriteEngine on # URLに/user_name/sp/と/user_name/cgi/を含まないスマートフォンアクセスは # スマートフォンサイトにURL転送する。(URL表示アドレスは変えない) # %{REQUEST_URI}=/user_name/xxx.html RewriteCond %{REQUEST_URI} !/user_name/(sp|cgi)/ RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone) RewriteBase /user_name RewriteRule ^(.*)$ sp/$1 [L,NS] # URLに/user_name/sp/を含むPCアクセスは # PCサイトにURL転送する。(URL表示アドレスは変える) RewriteCond %{REQUEST_URI} /user_name/sp/ RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|iPad|Android|Windows\ Phone) RewriteBase /user_name RewriteRule ^sp/(.*)$ $1 [R] </IfModule>
このサイトのWebページの文字コードは、全てUTF-8(BOMなし)なので、licence.txt等のテキストファイルをブラウザで表示すると文字化けを起こします。 これを改善するのと、念の為に「*.cgi」や「*.log」ファイルへのアクセスを禁止する設定も行います。
下記にPCのサイト(http://e.gmobb.jp/user_name/)に設置した.htaccessファイルの追記内容を示します。(全.htaccessファイルの内容)
# 文字コードをUTF-8に設定 <FilesMatch "\.(htm|html|txt|css|js)$"> AddDefaultCharset UTF-8 </FilesMatch> # 「.htaccess」や「*.cgi」や「*.log」ファイルへのアクセス禁止 <FilesMatch "^(\.ht|\.cgi|\.log)"> order allow,deny deny from all </FilesMatch>
アクセスの高速化(サーバーのデータ送出の高速化)を目指して、GTmetrixで、Webサイトの検査を行います。内容を見ればわかりますが、 サイト側で実施すべき内容とWebサーバー側で実施すべき内容に分かれます。
サイト側で実施すべき内容は、まずHTMLを正しい文法で書くことと画像ファイル等の軽量化です。
Webサーバー側で実施すべき内容は、.htaccessファイルに下記の設定を行います。
GTmetrix | Website Speed and Performance Optimizationの
Analyze Performance of:の下にURLを入力して下さい。
上図は、このサイトのホームページ(http://e.gmobb.jp/sakaguchi/)を入力した結果(2015年 1月20日)です。
となっています。
下図は、Timelineタグの内容で時系列の結果です。
FileETag none # gzip圧縮 #<IfModule mod_deflate.c> GMOとくとくBBでは、このif条件は成立しない # AddOutputFilterByType を使用する方法 # AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/javascript text/text #</IfModule> <IfModule mod_rewrite.c> RewriteEngine on ### gzip 圧縮 ### # 参考サイト # http://www.webdesignleaves.com/wp/htmlcss/217/ # gzipが許容されていれば RewriteCond %{HTTP:Accept-Encoding} gzip # CSS,html,xml,xsl,JavaScript ファイル RewriteCond %{REQUEST_FILENAME} \.(css|html|txt|xml|xsl|js)$ # 拡張子が「.gz」でなければ次へ RewriteCond %{REQUEST_FILENAME} !\.gz$ # 元のファイルの末尾に「.gz」を付与したファイルが存在すれば次へ RewriteCond %{REQUEST_FILENAME}.gz -s # URIの末尾に「.gz」を付与" RewriteBase /user_name RewriteRule .+ %{REQUEST_URI}.gz [L] # MIME-TYPEとgzエンコードを指定" <FilesMatch "\.css\.gz$"> ForceType "text/css; charset=UTF-8" AddEncoding x-gzip .gz </FilesMatch> <FilesMatch "\.html\.gz$"> ForceType "text/html; charset=UTF-8" AddEncoding x-gzip .gz </FilesMatch> <FilesMatch "\.txt\.gz$"> ForceType "text/plain; charset=UTF-8" AddEncoding x-gzip .gz </FilesMatch> <FilesMatch "\.xml\.gz$"> ForceType "text/xml; charset=UTF-8" AddEncoding x-gzip .gz </FilesMatch> <FilesMatch "\.xsl\.gz$"> ForceType "text/xsl; charset=UTF-8" AddEncoding x-gzip .gz </FilesMatch> <FilesMatch "\.js\.gz$"> ForceType "application/x-javascript; charset=UTF-8" AddEncoding x-gzip .gz </FilesMatch> </IfModule> # 以下のアクセス期限の設定は、GMOとくとくBBでは、できなかった。 # アクセス期限の設定 <ifModule mod_expires.c> GMOとくとくBBでは、このif条件は成立しない ExpiresActive On GMOとくとくBBでは、実行されればInternal Server Errorになる ExpiresDefault "access plus 1 seconds" ExpiresByType text/html "access plus 1 seconds" ExpiresByType image/gif "access plus 2592000 seconds" ExpiresByType image/jpeg "access plus 2592000 seconds" ExpiresByType image/png "access plus 2592000 seconds" ExpiresByType image/x-icon "access plus 2592000 seconds" ExpiresByType image/vnd.microsoft.icon "access plus 1 seconds" ExpiresByType text/css "access plus 604800 seconds" ExpiresByType text/javascript "access plus 2592000 seconds" ExpiresByType application/x-javascript "access plus 2592000 seconds" ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds" </ifModule> <Files ~ ".(gif|jpe?g|png|ico)$"> # Header set Cache-Control "max-age=2592000, public" GMOとくとくBBでは、Internal Server Errorになるので、コメント化 </Files> <Files ~ ".(css|js|gz)$"> # Header set Cache-Control "max-age=604800, public" GMOとくとくBBでは、Internal Server Errorになるので、コメント化 </Files>
前項のgzip圧縮ファイルは、Webページを変えるたびに再圧縮する必要があり、作業が面倒です。 そこで指定フォルダだけの一括圧縮バッチファイルと指定フォルダ以下の一括圧縮バッチファイルを作成しました。 Webページのあるフォルダにこのバッチファイルを入れておき、クリックすると圧縮対象ファイル数分のgzip圧縮ファイルが一括して生成されます。
尚、このバッチファイルを使用するには、gzip.exeが必要で、パスの通ったシステムフォルダ内にgzip.exeが存在する必要があります。 gzip.exeの導入は、GNU File Compress/Uncompress Tool gzip for Windowsで行ってください。
@echo off REM Webページ用gzip一括圧縮(現在フォルダのみ) for %%f in (*.css) do gzip -9 -c -f %%f > %%f.gz for %%f in (*.html) do gzip -9 -c -f %%f > %%f.gz for %%f in (*.txt) do gzip -9 -c -f %%f > %%f.gz for %%f in (*.xml) do gzip -9 -c -f %%f > %%f.gz for %%f in (*.xsl) do gzip -9 -c -f %%f > %%f.gz for %%f in (*.js) do gzip -9 -c -f %%f > %%f.gz
@echo off REM Webページ用gzip一括圧縮(子フォルダを含む) for /R %%f in (*.css) do gzip -9 -c -f %%f > %%f.gz for /R %%f in (*.html) do gzip -9 -c -f %%f > %%f.gz for /R %%f in (*.txt) do gzip -9 -c -f %%f > %%f.gz for /R %%f in (*.xml) do gzip -9 -c -f %%f > %%f.gz for /R %%f in (*.xsl) do gzip -9 -c -f %%f > %%f.gz for /R %%f in (*.js) do gzip -9 -c -f %%f > %%f.gz
下記のWebページを利用させて頂きました。有用なページ、有難うございました。
© 2014-2015 太刀魚 Released under the MIT license