Instagramのプロアカウントに切り替えることで、使えるようになるインサイト機能。このインサイト機能で何がわかるのか、調べてみました。
インサイト機能の使い方
インサイト機能で見れる情報
インサイト機能で見れる情報
- 自分のアカウントの投稿を見たアカウント数
- 自分のアカウントの投稿がタイムラインに表示された回数
- 自分のアカウントの投稿に対する行動履歴
- 自分のアカウントの投稿に対するリアクションの合計
- フォロワーの情報
ブログ、商品やブランド、ショップ紹介、アフィリエイト
インサイト機能で見れる情報
- 自分のアカウントの投稿を見たアカウント数
- 自分のアカウントの投稿がタイムラインに表示された回数
- 自分のアカウントの投稿に対する行動履歴
- 自分のアカウントの投稿に対するリアクションの合計
- フォロワーの情報
プロアカウントで利用できる機能
- カテゴリラベル表示
- インサイト機能
- 問い合わせ先表示
- DMテンプレート
- DMフォルダ分け
- 有料広告
- Instagramショッピング
- Facebookと管理権限共有
注意事項
- 基本的に、http.confファイルにアクセスできない場合以外は極力使用しない
- FTPで転送する場合、ASCIIモードまたは、テキストモードを使用する
- Windowsで編集する場合、一旦htaccess.txtなどに置き換え、サーバーに配置後にリネームする
- 設置されたディレクトリと配下ディレクトリ全てに影響する
- 構文誤りや管理者が許可していないディレクティブを使用した場合、該当ディレクトリ配下のファイルアクセスが、500 Internal Server Errorになる
- 最終行には、改行を入れる
使い方概要
- セキュリティ関連
- エラーページ制御
- キャッシュ制御
- ページ表示の高速化
- 多言語対応
構文
Redirect [status] URL-Path URLURL-Path :転送元URL
URL-Pathは、相対パスでなく、絶対パスで指定する
URL :転送先URL
URLは、スキーム名で始まる絶対URLで指定する
[status] :キーワードを指定することでHTTPステータスコードを返せる
キーワード HTTPステータス
コード
permanent 301 リソースを恒久的に移動した際に指定
temp 302 リソースを一時的に移動した際に指定
seeother 303 リソースを他のもので置き換えた際に指定
gone 304 リソースが恒久的に削除した場合に指定
Redirectディレクティブは、パスが完全一致した場合に処理されます。正規表現を用いたマッチングを行いたい場合には、RedirectMatchディレクティブを利用します。
301リダイレクト
・サイトを新しいドメインに移転済みで、可能な限りシームレスに移行したい場合
・ユーザーが複数の異なる URL からサイトにアクセスする場合
・2つのウェブサイトを統合し、使わなくなったURLへのリンクが正しいページにリダイレクトされるようにしたい場合
また、次の構文のように記載することで、特定ディレクトリ(/srce/)を別ディレクトリ(http://www.sample.co.jp/dest/)に転送することが出来ます。この場合も同様に、転送先に対応するファイルが存在しない場合には、HTTP 404 Not Foundになります。記述例Redirect permanent / http://www.sample.co.jp/
記述例Redirect permanent /srce/ http://www.sample.co.jp/dest/
さらに、次の構文のように記載することで、特定ページ(/srce/test.html)を別ページ(http://www.sample.co.jp/dest/test.php)に転送することが出来ます。
記述例Redirect permanent /srce/test.html http://www.sample.co.jp/dest/test.php
例えば、以下のように記述することによって、GIFファイルを全て別サーバーの同様な名前のJPEGファイルにリダイレクトすることが出来ます。構文RedirectMatch [status] regx URL
記述例RedirectMatch (.*)\.gif$ http://www.anotherserver.com$1.jpg
詳細は、Apache RedirectMatchディレクティブを参照。 既存サイトのURLを変更する方法は、URLの変更を伴うサイト移転の例を参照。
.htaccessが使えない場合
また、利用している環境で、.htaccessによるリダイレクトが使えない場合には、次の方法でリダイレクトする方法もあります。記述例<meta http-equiv="refresh" content="秒数; URL=http://dest-domain/">
PHP header()関数
PHPを使って転送先にリダイレクトさせるには、header()関数、Locationヘッダーを使用し、header()関数以下のスクリプトが実行されないようにexit()関数を使ってスクリプトを終了させます。
<?phpheader('HTTP/1.1 301 Moved Permanently');記述例
header('Location: http://sample.co.jp/');
exit();
?>
mod_rewriteを使用したリダイレクト
サーバーの拡張機能mod_rewriteの機能を使用することができれば、RewriteRuleディレクティブを使ったリダイレクトを設定することができます。
記述例
RewriteEngine On
RewriteBase /
RewriteRule 転送元ファイル正規表現 転送先URL [フラグ]
RewriteEngine:mod_rewriteの機能のOn/Off を指定
デフォルトの値は、OffなのでURLの書き換え処理を行うには、Onにする
RewriteBase:RewriteRuleディレクティブで指定するリダイレクト先URLで書き換える基準となるディレクトリを相対パスで指定
RewriteRuleの転送先を相対パスで記述した場合にのみ適用され、絶対パスで指定している場合には不要で省略した場合は、.htaccessを配置したディレクトリからの相対パスが適用される
RewriteRule:具体的なURLの書き換えルールを記述
1番目のパラメータである正規表現にマッチした場合には、2番目のパラメータであるURLに書き換えられる
フラグ:省略可能、301リダイレクトにするには、R=301を指定する必要がある
合わせて指定される「L」はURLの書き換え処理を終了を意味する
例えば、特定のページから特定ページへのリダイレクトは、以下の記述例のように記述します。
記述例
RewriteEngine On
RewriteRule ^srce/(.*)$ http://www.sample.co.jp/dest/$1 [R=301,L]
IfModuleディレクティブ
次のように記述することで、使用している環境でmod_rewrite が利用できるかどうかを確認し、利用できない場合には、<IfModule mod_rewrite.c> ~ </IfModule>の中のコードが適用されません。記述例
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ...
</IfModule>
構文IfModuleディレクティブは、モジュールが存在する場合または存在しない場合に処理されるディレクティブを指定することができ、モジュールが存在しない条件の場合には、!をモジュールのファイル名の前に付けることで、そのモジュールが存在しない場合に処理されます。
<IfModule [!]module-file|module-identifier> ... </IfModule>
構文
RewriteEngine On
RewriteCond 文字列 条件パターン [オプション]
RewriteRule 条件 置換文字列
オプション
RewriteCondで使用できるオプション
オプション 意味
[OR] 連続する RewriteCond のいずれかが true の場合に実行します。省略時は、AND条件として処理され、連続するRewriteCondが全てtrueの場合に実行します。[NC] 条件を評価する時、大文字小文字を区別しません。指定しないと大文字小文字を区別します。
ORとNCをどちらも指定したい場合は[OR,NC]とカンマ区切りで指定します。
環境変数
mod_rewriteでは、環境変数という特別な変数を利用でき、%{環境変数名}と指定することで利用できます。環境変数 値と意味HTTP_HOST リクエスト先のDNS名の情報。HTTP_REFERER 参照元のURL情報
HTTP_ACCEPT ブラウザがサポートするメディア、MIMEタイプの情報HTTP_USER_AGENT ユーザのブラウザや端末情報
HTTPS HTTPSであればon、そうでなければoffが返却されるQUERY_STRING クエリ文字列
SERVER_ADDR サーバーのアドレス
SERVER_PORT サーバーのポート番号PATH_INFO ファイル名とクエリ文字列の間にあるパス情報
REMOTE_ADDR ユーザのIPアドレス情報
REMOTE_USER リモートユーザー名
REMOTE_HOST リモートホスト名
THE_REQUEST リクエスト文字列
REQUEST_URI リクエストされたURIの情報とクエリ文字列
REQUEST_FILENAME リクエストされたファイル名(絶対パス)SCRIPT_FILENAME 実行するスクリプトの絶対パス情報DOCUMENT_ROOT ドキュメントルートのパス情報
TIME_YEAR 年
TIME_MON 月
TIME_DAY 日
TIME_WDAY 曜日(0:日~6:土)
ENV:環境変数名 %{ENV:...}式を指定し環境変数に基き条件分岐可能
記述例RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
利用できる演算子の例 意味! 否定
< テスト文字列より大きい場合はtrue
> テスト文字列より小さい場合はtrue
= テスト文字列と等しい場合はtrue
<= テスト文字列以上の場合はtrue
>= テスト文字列以下の場合はtrue
-d ディレクトリが存在する場合はtrue
-f ファイルが存在する場合はtrue
-s ファイルが存在し、サイズが0でない場合はtrue
構文
RewriteRule 条件パターン 置換文字列 [フラグ]
条件パターン :URLとマッチさせる部分正規表現を利用することができる
置換文字列 :URLと条件パターンがマッチした場合に、行う処理を指定する
[フラグ] :挙動を制御するためのオプションを指定できる複数のフラグを指定する場合には、カンマ区切りで指定する
フラグ 別名 意味
R redirect 指定したURLにリダイレクトする[=code] [R=301]のようにレスポンスコードを指定する
ことができる
指定しない場合は、302 Moved Temporarilyで
リダイレクトされる
temp(302)、permanent(301)、seeoth
er(303)のシンボル名も指定できる
F forbidden ステータスコード 403 Forbiddenを返す
RewtiteCondに設定した条件で、Webサーバー
へのアクセスを禁止する場合などに指定する
G gone ステータスコード 410 Goneを返す
ユーザーに、存在しないページにアクセスして
いることを通知する時に指定する
P proxy ルールにマッチしている場合には、書き換えた
URLをプロキシ要求とみなし、リバースプロキ
シとして動作する
このフラグを使用する場合には、mod_proxy
が組み込まれている必要がある
L last ルールにマッチしている場合は、URLの書き
換え処理を終了し後続のルールを適用しない
但し、.htaccessでは、Lフラグが有効になら
ない
N next 一連の書き換え処理のルールを先頭のルールから再度実行する
既に書き換えられたURLが対象となる
本フラグを指定する場合は、書き換え処理が無限に実行されないよう適切に終了条件を設定する必要がある
C chain ルールにマッチしている場合は、後続のルールを適用する
ルールにマッチしていない場合、後続のルールは全て適用されない
T=MIME- type=MIME- ルールにマッチしている場合は、指定したtype type MIMEタイプをContent-Typeヘッダに設定する
NS nosubreq Webサーバー内で発生するサブリクエストには、ルールを適用しない
ユーザーから末尾がスラッシュのURLが指定された際に、DirectoryIndexディレクティブで指定したファイルに対するサブリクエストが発生するが、そのサブリクエストにルールを適用しない場合などに使用するNC nocase 大文字小文字を区別せずにルールを適用する
QSA qsappend 書き換え前のURL及び置換文字列にそれぞれクエリ文字列が存在する場合には、置換文字列の末尾にアンパサンドと書き換え前のURLに指定されたクエリ文字列を追加する本フラグを指定しない場合には、クエリ文字列は置換文字列で上書きされる
NE noescape 書き換え時のURLエスケープを抑制する
通常、パーセント(%)やセミコロン(;)などの特殊文字は、16進表現の“%25”、“%3b”にエスケープされるが本フラグを指定した場合には、エスケープされない
PT passthrough URLの書き換え後、他のモジュールに制御を渡す書き換えたURLに対し、Aliasディレクティブ、ScriptAliasディレクティブおよびRedirectディレクティブなどを使用する場合に指定する
S=num skip=num ルールにマッチしている場合、数値に指定した数の後続のルールの適用をスキップする
E=環境 env=環境 ルールにマッチしている場合、指定した任意変数:値 変数:値 の環境変数に設定する値には、置換文字列と同様に、$nおよび%nも指定できる
記述例
RewriteEngine On
RewriteCond %{THE_REQUEST} ^.*/index\.html
RewriteRule ^(.*)/index\.html$ http://%{HTTP_HOST}/$1 [R=301,L]
記述例
RewriteEngine On
RewriteCond %{REQUEST_URI} !(^/mysqladmin/)
RewriteCond %{THE_REQUEST} ^.*/index\.(html|php)
RewriteRule ^(.*)index\.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L]
記述例
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
記述例
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
記述例
ErrorDocument 503 /mainte.html
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/mainte.html
RewriteCond %{REMOTE_ADDRES} !=xxx.xxx.xxx.xxx
RewriteCond %{REQUEST_FILENAME} !\.(css|jpe?g|gif|png|js)$
RewriteRule ^.*$ - [R=503,L]
Header set Retry-After "Sun, 06 Jun 2021 9:00:00 GMT"
記述例
ErrorDocument 503 "During emergency maintenance."
RedirectMatch 503 .*
構文error-codeには、ステータスコード。documentには、表示するテキストまたはファイルへのパスを指定することができます。
ErrorDocument error-code document
記述例自サーバ内のURL-pathにリダイレクトして、問題やエラーの処理をするには、ドキュメントルートからの相対パスで指定します。
ErrorDocument 404 "File not found"
記述例ErrorDocument 404 /file_not_found.html
ステータスコードの抜粋
ステータス 概要 詳細
コード
401 Unauthorized ユーザー認証に失敗
ID、パスワードのタイプミスなど
403 Forbidden 指定されたリソースへのアクセス権なし
許可されないディレクトリなどへのアクセス
404 Not Found 指定されたリソースが存在しない
URLタイプミスなど
500 Internal Server サーバーがリクエストを実行できない
Error .htaccessなどのサーバ設定ファイルの記述ミスなど
501 Not Implemented サーバーにリクエストを処理する機能がない
503 Service Unavailable サービスが利用できない
注意事項
- 基本的に、http.confファイルにアクセスできない場合以外は極力使用しない
- FTPで転送する場合、ASCIIモードまたは、テキストモードを使用する
- Windowsで編集する場合、一旦htaccess.txtなどに置き換え、サーバーに配置後にリネームする
- 設置されたディレクトリと配下ディレクトリ全てに影響する
- 構文誤りや管理者が許可していないディレクティブを使用した場合、該当ディレクトリ配下のファイルアクセスが、500 Internal Server Errorになる
- 最終行には、改行を入れる
使い方概要今回は、多言語対応について記事を書きます。
- セキュリティ関連
- エラーページ制御
- キャッシュ制御
- ページ表示の高速化
- 多言語対応
多言語対応・MultiViews
記述例Options +MultiViews
記述例
AddLanguage en .enAddLanguage ja .ja
index.html.enindex.html.ja
構文AddLanguage MIME-lang extention [extention] ...
構文LanguagePriority MIME-lang [MIME-lang] ...
None :ForceLanguagePriorityディレクティブの機能を無効にする構文ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback] ...
注意事項
- 基本的に、http.confファイルにアクセスできない場合以外は極力使用しない
- FTPで転送する場合、ASCIIモードまたは、テキストモードを使用する
- Windowsで編集する場合、一旦htaccess.txtなどに置き換え、サーバーに配置後にリネームする
- 設置されたディレクトリと配下ディレクトリ全てに影響する
- 構文誤りや管理者が許可していないディレクティブを使用した場合、該当ディレクトリ配下のファイルアクセスが、500 Internal Server Errorになる
- 最終行には、改行を入れる
使い方概要今回は、ページ表示の高速化について記事を書きます。
- セキュリティ関連
- エラーページ制御
- キャッシュ制御
- ページ表示の高速化
- 多言語対応
ページ表示の高速化
- ファイルを自分で圧縮する方法
- ファイルをサーバーで圧縮する方法
記述例<link rel="stylesheet" herf="css/style.css"><script type="text/javascript" src="js/core.js"> </script>
記述例RewriteEngine OnRewriteCond %{HTTP:Accept-Encoding} gzipRewriteCond %{REQUEST_FILENAME} !\.gz$RewriteCond %{REQUEST_FILENAME} \.gz -sRewriteCond %{REQUEST_FILENAME} (\.js|\.css|\.html)$RewriteRule .+ %{REQUEST_URI} .gz [L]<FileMatch "\.html\.gz$">ForceType text/htmlAddEncoding x-gzip .gz</FileMatch><FileMatch "\.css\.gz$">ForceType text/cssAddEncoding x-gzip .gz</FileMatch><FileMatch "\.js\.gz$">ForceType application/x-javascriptAddEncoding x-gzip .gz</FileMatch>
<IfModule mod_deflate.c>AddOutputFilterByType DEFLATE text/text text/xml text/html text/css text/plain application/x-javascript application/javascript</IfModule>
<IfModule filter_module>FilterDeclare COMPRESSFilterProvider COMPRESS DEFLATE resp=Content-Type $text/xmlFilterProvider COMPRESS DEFLATE resp=Content-Type $text/htmlFilterProvider COMPRESS DEFLATE resp=Content-Type $text/cssFilterProvider COMPRESS DEFLATE resp=Content-Type $text/plainFilterProvider COMPRESS DEFLATE resp=Content-Type $text/x-componentFilterProvider COMPRESS DEFLATE resp=Content-Type $application/javascriptFilterProvider COMPRESS DEFLATE resp=Content-Type $application/jsonFilterProvider COMPRESS DEFLATE resp=Content-Type $application/xmlFilterProvider COMPRESS DEFLATE resp=Content-Type $application/xhtml+xmlFilterProvider COMPRESS DEFLATE resp=Content-Type $application/rss+xmlFilterProvider COMPRESS DEFLATE resp=Content-Type $application/atom+xmlFilterProvider COMPRESS DEFLATE resp=Content-Type $application/vnd.ms-fontobjectFilterProvider COMPRESS DEFLATE resp=Content-Type $image/svg+xmlFilterProvider COMPRESS DEFLATE resp=Content-Type $application/x-font-ttfFilterProvider COMPRESS DEFLATE resp=Content-Type $font/opentypeFilterChain COMPRESSFilterProtocol COMPRESS DEFLATE change=yes;byteranges=no</IfModule>
1.Gossip
前回同様、かわいい見た目と、かっこいいデザイン、シンプルで、記事が見やすいなど、良いところは多いのですが、日本語でないことで今回も最後まで悩んだテーマです。リンク先で、ライブプレビューを見たり、ダウンロードできますので、実際に見て触ってみてはどうでしょうか。
2.Simplify2
かっこいいデザイン、シンプルで、記事が見やすくってなどは良いのですが、やっぱり日本語でないことで最後まで悩んだテーマです。記事上のメニューと記事下のページ数とタイトル付きの前の記事/後の記事ナビゲーションができるということから、今回も最終的に使うことに決めたテーマです。リンク先で、ライブプレビューを見たり、ダウンロードできますので、実際に見て触ってみてはどうでしょうか。
3.QooQ
日本語のテーマです。テーマTokyo、Kyotoと同じ作者のラムネグさんが、これまでのまとめとして作ったという、スマートでカッコいいデザインのテーマ。表示の速さにもこだわって、シンプルで軽量に設計したそうです。SEO対策されています。リンク先には、作者ラムネグさんの詳細な説明。トップページとかカテゴリページとかの記事一覧をリストにしたバージョンと普通のバージョンのサンプルページを見たり、ダウンロードできたりしますので、実際に見て触ってみてはどうでしょうか。そうそう、WordPress版のQooQもあるそうですよ。
4.Tokyo
日本語のテーマです。テーマKyoto、QooQと同じ作者のラムネグさん作のシンプルで、かっこいいだけでなく、SEO対策されていたり、スクロールに合わせてサイドバーがついてきたりする機能も付いている実現力派なテーマです。こちらも、リンク先には、詳細な説明。そして、サンプルページを見たり、ダウンロードできたりしますので、実際に見て触ってみてはどうでしょうか。
前回も書きましたが、見た目だけでなく、操作性や表示速度、SEOなど、テーマ選びって本当に悩ましいです。選ぶだけでこんなに悩んでしまうのだから、作る人達は、もっと悩んでいるんじゃないかと想うと…使わせて頂いて、本当に感謝です。5.Vaster2
日本語のテーマです。最低限の機能でシンプルに設計されているだけでなく、表示速度が速かったり、日本語対応のテンプレートデザイナーが付いていたり、人気記事や関連記事を表示する機能も付いている実現力派なテーマです。こちらも、リンク先には、作者トーマスさんによる詳細な説明。そして、サンプルブログを見たり、ダウンロードできたりしますので、実際に見て触ってみてはどうでしょうか。日本語で、表示速度が速くて、必要な機能が付いているということで、最終的に使うことに決めたテーマです。
注意事項
- 基本的に、http.confファイルにアクセスできない場合以外は極力使用しない
- FTPで転送する場合、ASCIIモードまたは、テキストモードを使用する
- Windowsで編集する場合、一旦htaccess.txtなどに置き換え、サーバーに配置後にリネームする
- 設置されたディレクトリと配下ディレクトリ全てに影響する
- 構文誤りや管理者が許可していないディレクティブを使用した場合、該当ディレクトリ配下のファイルアクセスが、500 Internal Server Errorになる
- 最終行には、改行を入れる
使い方概要今回は、キャッシュ制御について記事を書きます。
- セキュリティ関連
- エラーページ制御
- キャッシュ制御
- ページ表示の高速化
- 多言語対応
キャッシュ制御
- mod_expiresモジュール
- FileETagディレクティブ
記述例ExpiresActiveディレクティブ
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access time plus 10 minutes"
ExpiresByType text/html "access time plus 10 seconds"
ExpiresByType image/jpg "access time plus 7 days"
...
ExpiresByType text/css "access time plus 1 month"
...
</ifModule>
構文
ExpiresDefault <code>seconds
<code> :基準時刻をファイルの最終修正時刻(M)にするか、クライアントのアクセス時間(A)にするかを指定
second :有効期限の日時を設定するための基準時刻に追加する秒数を設定
ExpiresActive On
ExpiresDefault A2592000
<FilesMatch "\.(jpg|png|js|css|)(\.gz)?$">
ExpiresDefault A2592000
</FilesMatch>
構文Cache-Control:max-ageは期限切れの時刻からリクエスト時刻を引いた秒数で設定する。
ExpiresByType MIME-type <code>seconds
MIME-type:キャッシュしたいファイルの種類を指定
<code> :基準時刻をファイルの最終修正時刻(M)にするか、クライアントのアクセス時間(A)にするかを指定
second:有効期限の日時を設定するための基準時刻に追加する秒数を設定
ExpiresActive On
#pngファイルはアクセス日時から1ヶ月間有効
ExpiresByType image/gif A2592000
#HTMLファイルは最終更新日時から1週間有効
ExpiresByType text/html M604600
構文
ExpiresDefault "<base> [plus] {<num> <type>}*"
ExpiresByType type/encoding "<base> [plus] {<num> <type>}*"
base
access:基準時刻をクライアントのドキュメントへのアクセス時刻にする
now:'access’と同じ
modification:基準時刻をファイルの最終更新時刻にする
plus
plusキーワードは省略可能
num
整数値
Type
years
months
weeks
days
hours
minutes
seconds
Header set header [value]Cache-Controlヘッダは、HTTP/1.1仕様の1部として定義され、レスポンス、キャッシュ、ポリシーの設定に使用されていたヘッダーよりも優先されます。古いブラウザの中には対応しないものも存在します。
ExpiresActive On
Header set Connection keep-alive
<FilesMatch "\.(jpg|jpeg|png)$">
Header set Cache-Control "max-age=2592000,public"
</FilesMatch>
<FilesMatch "\.(js|css)$">
Header set Cache-Control "max-age=1209600,private"
</FilesMatch>
<FilesMatch "\.(html)$">
Header set Cache-Control "max-age=600,must-revalidate"
</FilesMatch>
public:どのキャッシュでもレスポンスを保存することを示す
private:レスポンスが1人のユーザーのものであり、キャッシュを共有保存しないことを示し、ブラウザのプライベートキャッシュはレスポンスを保存できます
must-revalidate:キャッシュに記録されているコンテンツが有効か否かをWebサーバーに必ず問い合わせます
no-cache:キャッシュしたものが有効か否かサーバーでの確認なしにキャッシュを利用しない
no-store:キャッシュしない
<link rel="stylesheet" href="../css/style.css?20191124" type="text/css">通常クエリ文字列を加える場合は、“?”の後に“name=value”の形式で付与しますが、キャッシュを解除する場合には、“name=value”の形式にする必要はありません。
<script type="text/javascript" src="../js/base.js?date=20191124"></script>
<img src="image/gazou.jpg?20191124" alt="">
<?php
echo '<link rel="stylesheet" href="../css/style.css?' . filemtime('../css/style.css') . '">';
?>
<link rel="stylesheet" href="css/style.3210.css">あわせて、.htaccessに下記のように“ファイル名.数値.拡張子”を“ファイル名.拡張子”にする修正を加えることで正しいcssファイルを読み込むようにする必要があります。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L]
Header unset ETag
FileETag None
FileETag None
注意事項
- 基本的に、http.confファイルにアクセスできない場合以外は極力使用しない
- FTPで転送する場合、ASCIIモードまたは、テキストモードを使用する
- Windowsで編集する場合、一旦htaccess.txtなどに置き換え、サーバーに配置後にリネームする
- 設置されたディレクトリと配下ディレクトリ全てに影響する
- 構文誤りや管理者が許可していないディレクティブを使用した場合、該当ディレクトリ配下のファイルアクセスが、500 Internal Server Errorになる
- 最終行には、改行を入れる
使い方概要今回は、エラーページ制御の使い方について記事を書きます。
- セキュリティ関連
- エラーページ制御
- キャッシュ制御
- ページ表示の高速化
- 多言語対応
エラーページ制御エラーページの変更
- エラーページの変更
ErrorDocument error-code documentErrorDocumentディレクティブは、HTTPのレスポンスコード、メッセージまたはURLを指定することで設定します。
1.Apache標準のエラーメッセージを表示
デフォルト設定なので、設定する必要はありませんが、”default”を設定することでApacheにハードコードされているメッセージを指定することができます。
ErrorDocument 404 /cgi-bin/err_urls.pl
<Directory /web/documents>
ErrorDocument 404 default
</Directory>
2.自分で作成したエラーメッセージを表示
自分で作成したエラーメッセージを表示する場合は、documentに作成したメッセージをダブルクォートで括って指定します。
ErrorDocument 404 "Sorry, page not found."
3.自サーバー内のURL-pathへリダイレクトし、問題やエラーの処理
自サーバー内ので問題やエラーを処理する場合は、スラッシュで始まるドキュメントルートからの相対パスを指定します。
ErrorDocument 404 /page_not_found.html
4.外部のURLへリダイレクトし、問題やエラーの処理
httpなどで始まるURLを指定することで、外部URLで問題やエラーを処理することができます。
ErrorDocument 404 http://sample.exanple.com/cgi-bin/page_not_found
出力されたエラーメッセージの一部
...error while loading shared libraries:libcrypt.so.1: cannot open shared object file: No such file or directory...
libcryptx-compatのインストール方法
sudo dnf install libxcrypt-compat
Minimal BASH-like line editing is supported. For the first word,この場合は、grubブートメニューを表示するためのGRUB2は正常に起動している状態で、モジュール や/ boot/grub/ディレクトリに格納されている他のモジュールをロードしたが、grub.cfgファイルが見つからなかったことを意味するそうです。他にも、grub rescueプロンプトというものを表示する場合もあるそうです。こちらの場合には、normal.mod が見つからなかったことを意味するそうで、どちらの場合も、ブートに関連するファイルが存在しないことを意味します。
TAB lists possible command completions. Anywhere else TAB lists
possible device or file completions. ESC at any time exits.
grub>
grub> ls
(hd0) (hd0,msdos2) (hd0,msdos1)
参考
hd0,1:sda1 hd1,0:sdb1
hd0,2:sda2 hd1,1:sdb2
gpt:Globally Unique Identifiers Partition Table
msdos:MS-DOS Master Boot Record
grub> ls (hd0,1)/
... grub2 ...
grub> search --file /grub2/grub.cfg見つかりましたので、rootを設定します。
hd0,msdos1
set root=(hd0,msdos1)
configfile /grub2/grub.cfgドライブ上のGRUBからメニューが表示され、起動するOSを選択することで起動することができました...慌てないでください。まだ、恒久対処を実施していません。
# sudo update-grub
Generating grub configuration file ...
~
done
# grub-install /dev/sda
Installing for i386-pc platform...
~
Installation finished. No error reported.
注意事項
- 基本的に、http.confファイルにアクセスできない場合以外は極力使用しない
- FTPで転送する場合、ASCIIモードまたは、テキストモードを使用する
- Windowsで編集する場合、一旦htaccess.txtなどに置き換え、サーバーに配置後にリネームする
- 設置されたディレクトリと配下ディレクトリ全てに影響する
- 構文誤りや管理者が許可していないディレクティブを使用した場合、該当ディレクトリ配下のファイルアクセスが、500 Internal Server Errorになる
- 最終行には、改行を入れる
使い方概要今回は、セキュリティ関連の使い方について記事を書きます。
- セキュリティ関連
- エラーページ制御
- キャッシュ制御
- ページ表示の高速化
- 多言語対応
セキュリティ関連
- ディレクトリの内容を表示させない
- ファイルへのアクセス制限
- ディレクトリへのアクセス制限
- パスワード(ベーシック)認証
- DirectoryIndex
Options -IndexesOptionsディレクティブは、どのサーバー機能を特定のディレクトリで使用可能とするかを制御します。⁺は元の設定に追加、‐は元の設定から削除します。上位ディレクトリで指定した設定は原則として下位ディレクトリまで適用される。下位ディレクトリで、Optionsディレクティブ設定をした場合、⁺は設定を有効に、‐は設定を無効に、そして±を省略した場合には新規に設定が適用されます。
Optionsディレクティブに指定できる値レンタルサーバーによっては、管理者によってOptionsディレクティブが使えないように制限されている場合があります。その場合には、次のようにすることでディレクトリ一覧を表示ができないようにできます。
All :MultiViewsを除いて全ての機能が有効になる
ExecCGI :mod_cgiによるCGIスクリプトの実行を許可する
FollowSymLinks :ディレクトリ内でシンボリックリンクをたどれる
Includes :mod_includeが提供するSSIを有効にする
IncludesNOEXEC :SSIを有効にするが、#exec、#execCGIは無効になる
Indexes :URLがディレクトリにマップするリクエストでDirectoryIndexで指定したファイルがディレクトリ内に存在しなければmod_autoindexがディレクトリ内の一覧を返す
MultiViews :mod_negotiationによるコンテントネゴシエーションされた言語ネゴシエーション機能を有効にする
SymLinksIfOwnerMatch :シンボリック先のファイルまたはディレクトリが、シンボリックの所有ユーザーIDと同じ場合にだけ、シンボリックリンクをたどれる
None : 全ての機能を無効にする
IndexIgnore *ファイルへのアクセス制限
<Files filename> Order Deny,Allow Deny from all Allow from 10.10.10.*</Files>FilesMatchディレクティブのブロック内に記述した設定を正規表現に一致するファイル名に適用します。下記の例は、FilesMatchディレクティブを用いて、.htaccessまたは.htpasswdファイルへの全アクセスを拒否する例です。
<FilesMatch "^\.(htaccess|htpasswd)$"> deny from all</FilesMatch>ディレクトリへのアクセス制限
deny from allパスワード(ベーシック)認証
<Files pw-login.php> AuthType Basic AuthUserFile /home/XXX/.htpasswd AuthGroupFile /dev/null AuthName "Login Passwd Input" Require valid-user</Files>DirectoryIndex
DirectoryIndex index.html index.htm index.php index.cgi
エラーメッセージ
Generating “/run/initramfs/rdsosreport.txt”
Entering emergency mode. Exit the shell to continue.
Type “journalctl” to view system logs.
You might want to save “/run/initramfs/rdsosreport.txt” to a USB stick or /boot after mounting them and attach it to a bug report.
問題箇所
fsck failed .........
~中略~
Failed to start file System Check on ファイルシステム
ファイルシステムの修復今回は、この方法でリカバリーできましたが、必ずリカバリーできるものではないので、自分で運用、保守をしている方は、定期的にバックアップを取ったり、システムに変更を加えた時にバックアップを取ったりして、いざという時に備えるようにして下さいね。
fsck -fy ファイルシステム
MySQLデータベースバックアップ
特定のデータベースのみバックアップする場合
mysqldump --single-transaction -u ユーザー名 -p DB名 > 出力ファイル名
全データベースをバックアップする場合
mysqldump --single-transaction -u ユーザー名 -p -x --all-databases > 出力ファイル名
MySQLデータベースリストア
特定のデータベースのみリストアする場合
mysqldump -u ユーザー名 -p DB名 < バックアップファイル名
全データベースをリストアする場合
mysqldump -u ユーザー名 -p < バックアップファイル名
WordPressブログバックアップデータベースのリストアでなく、WordPressのエクスポート機能で出力したXMLファイルをインポート機能でリストアする場合は、以前、使用していたテーマ、プラグインを有効にし、以前と同じパーマリンク設定をしてから、XMLファイルをインポート機能でリストアして下さい。正しく記事が復元されないのでくれぐれも注意して下さい。
最低限のデータのみバックアップする場合
1.~/wp-config.php
2.~/wp-content/plugin/ ⇒ プラグイン格納
3.~/wp-content/themes/ ⇒ テーマ格納
4.~/wp-content/uploads/ ⇒ アップロードデータ格納
全データをバックアップする場合
WordPressのインストールディレクトリ配下の全データ
出力されたエラーメッセージの一部
...Cannot load modules/libphp7.so into server: libnsl.so.1: cannot open shared object file: No such file or directory...
発見した情報
Fedora 28以降で、msendユーティリティを使用しようすると、libnsl.so.1がnot foundと表示されるとのこと。
その原因は
Ferdoa 28以降、libnslパッケージはデフォルトでは含まれなくなり、libnsl2のみになったとのこと。
その対応方法はということは...利用しているOSが32bit、64bitのどちらかによって下記のコマンドでインストールできます。MataKitena Blogは、32bitなので、”dnf install libnsl”を実行してコマンドからWebサーバーのapatchを起動...起動完了です。念のため、システム起動時に自動起動されるかも確認しましたが、問題なく起動できました。
後方互換性があるはずなのでlibnsl2ライブラリをlibnslにソフトリンクをしてみるか、libnslをインストールすればいいとのこと。
libnslのインストール方法
32bit OSの場合:dnf install libnsl
64bit OSの場合:dnf install libnsl.i686