photo credit: Control Room / cliff1066
.htaccessやrobots.txtを設定していない方は、まずファイルを作成しましょう。
テキストエディタで『htaccess.txt』と『robots.txt』を作成します。
中身はなにも書いてなくてOK。
これをブログなどを公開しているサーバへアップロードします。
アップロードした『htaccess.txt』を『.htaccess』にリネームしたら完成!
※ファイル名の先頭に『.』を付けると、そのファイルは見えなくなってしまいます。
そのため、アップロードしてからファイル名を変更するようにしてください。
外部からのリンクでURLが間違えている場合や、画像への直リンクなど。
どうしてもコチラの意図や希望から外れてしまうことは生じます。
そうしたときに、できるだけコントロールしてあげるための設定情報が.htaccessです。
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [R=301,L] RewriteCond %{QUERY_STRING} ^([-=a-zA-z0-9]+)/page/([0-9]+)/?$ RewriteRule ^$ /?%1&paged=%2 [R=301,L] AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript ExpiresActive On ExpiresByType image/gif "access plus 1 weeks" ExpiresByType image/png "access plus 1 weeks" ExpiresByType image/jpg "access plus 1 weeks" ExpiresByType text/css "access plus 604800 seconds" ExpiresByType image/x-icon "access plus 2592000 seconds" ExpiresByType application/javascript "access plus 1 weeks" ExpiresByType application/x-javascript "access plus 1 weeks" ExpiresByType text/javascript "access plus 1 weeks" <FilesMatch ".(gif|jpe?g|png|js|css)$"> Header set Cache-Control "max-age=604800" </FilesMatch> <FilesMatch ".(ico|swf|flv|pdf)$"> Header set Cache-Control "max-age=2592000" </FilesMatch> <FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$"> Header unset Cache-Control </FilesMatch> <Files ~ "\.(gif|png|jpg)$"> SetEnvIf Referer "^http://mag\.torumade\.nu" ShowOK SetEnvIf Referer "^$" ShowOK order deny,allow deny from all allow from env=ShowOK </Files>
ボクが最低限で設定している.htaccessの記載内容です。
上から説明していきますね。
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [R=301,L] RewriteCond %{QUERY_STRING} ^([-=a-zA-z0-9]+)/page/([0-9]+)/?$ RewriteRule ^$ /?%1&paged=%2 [R=301,L]
他のブログなどからリンクしてもらっていても、URLが間違えてることがあります。
また、WordPressなどの場合、途中でパーマリンクの書式を変更する可能性もあります。
そうした場合に、間違えているURLを正しいURLに書き換え(リダイレクト)しています。
詳しい書き方は以下を参照してください。
参考:.htaccessのRedirectRuleでURLクエリーを含めた301リダイレクトを設定する方法
AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript
HTMLやCSSなど(画像以外)をブラウザーへ送る際に圧縮する設定になります。
上記を1セットとして記載すれば、だいたいのページでは足りると思います。
利用しているサーバによっては『AddOutputFilterByType』が使えない場合も。
その際は以下のように記載します。
SetOutputFilter DEFLATE BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary Header append Vary User-Agent env=!dont-vary
圧縮転送が適切に設定されているかはPage Speed Insightsで確認できます。
ExpiresActive On ExpiresByType image/gif "access plus 1 weeks" ExpiresByType image/png "access plus 1 weeks" ExpiresByType image/jpg "access plus 1 weeks" ExpiresByType text/css "access plus 604800 seconds" ExpiresByType image/x-icon "access plus 2592000 seconds" ExpiresByType application/javascript "access plus 1 weeks" ExpiresByType application/x-javascript "access plus 1 weeks" ExpiresByType text/javascript "access plus 1 weeks" <FilesMatch ".(gif|jpe?g|png|js|css)$"> Header set Cache-Control "max-age=604800" </FilesMatch> <FilesMatch ".(ico|swf|flv|pdf)$"> Header set Cache-Control "max-age=2592000" </FilesMatch> <FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$"> Header unset Cache-Control </FilesMatch>
上記では画像(gif / png / jpg)は1週間(604,800秒)の有効期限に。
CSSやJavaScriptも1週間の有効期限に。
faviconやswf、pdfは1か月(2,592,000秒)と設定しています。
CSSやJavaScriptを修正した場合は、ファイル名も変更する必要があります。
いちばん簡単なのは更新日付と履歴番号をファイル名に追記する方法。
たとえば『./script2013052600.js』や『./style2013052701.css』などですね。
こうすることでキャッシュしていたファイルと異なるファイルとなります。
キャッシュは同名ファイルに対してのみ有効になるので、これで新たにキャッシュされます。
キャッシュの有効期限が適切に設定されているかはPage Speed Insightsで確認できます。
<Files ~ "\.(gif|png|jpg)$"> SetEnvIf Referer "^http://mag\.torumade\.nu" ShowOK SetEnvIf Referer "^$" ShowOK order deny,allow deny from all allow from env=ShowOK </Files>
上記では画像ファイルに関しての直リンクを防止しています。
http://mag.torumade.nuを含むURLからの要求であれば許可で、それ以外は拒否になります。
http://mag.torumade.nuを含んでいるかの設定が『SetEnvIf Refere』です。
しかし、PCにインストールしているウイルス対策ソフトによっては弊害もあります。
その対策として、かならず『SetEnvIf Referer “^$” ShowOK』を併記します。
robots.txtを必要とするのはGoogleなどの検索システム。
検索システムがブログなどの内容を調べるときに参照するファイルです。
ここに『見せたくないファイル(フォルダ)』や『見せない検索エンジン』を記載します。
robots.txtは原則として『拒否』についてだけを記載します。
記載されていないものは検索システムに『すべて許可』と判断されます。
User-agent: * Disallow: /wp-admin/ Disallow: /wp-content/ Disallow: /wp-includes/ Disallow: *.php* Disallow: *.js Disallow: *.css Disallow: *preview* User-agent: Googlebot-Image Disallow: / Allow: /wp-content/uploads/ User-agent: Mediapartners-Google Disallow: Sitemap: http://mag.torumade.nu/sitemap.xml Sitemap: http://mag.torumade.nu/sitemap.xml.gz
上記はボクがWordPressでブログなどを作る場合の基本形になります。
User-agent: * Disallow: /wp-admin/ Disallow: /wp-content/ Disallow: /wp-includes/ Disallow: *.php* Disallow: *.js Disallow: *.css Disallow: *preview*
WordPressではシステム関係が公開フォルダにあるため、検索システムはそれも調べてしまいます。
そのため、プログラム部分の各種ファイルは検索システムからの調査を拒否します。
User-agent: Googlebot-Image Disallow: / Allow: /wp-content/uploads/
Googleの画像検索は『/wp-content/uploads/』を許可して、それ以外はすべて拒否します。
User-agent: Mediapartners-Google Disallow:
Google Adsenceのマッチングシステムに対しては何も拒否しません。
※Disallow(拒否)するファイルやフォルダはない、と書いています。
Sitemap: http://mag.torumade.nu/sitemap.xml Sitemap: http://mag.torumade.nu/sitemap.xml.gz
このブログのサイトマップを設定しています。
2種類を書いていますが圧縮されているかの違いだけで、内容は同じです。
通常はどちらかだけで問題ありません。
2種類記載しても悪影響はありません。
たぶんどんなブログなどでも設定しておくべきな内容だけを簡単に取り上げてみました。
リダイレクトについては必要な内容が異なるので注意が必要ですが。
それ以外については、ほぼそのままを利用いただいて問題ないと思います。
(ドメインはちゃんと書き換えてくださいね)
ただしこれは本当に最低限の内容でしかないので、必要に応じた内容を調べて設定してくださいね。
crocodile notebookも4年目なので、ユーザビリティについて考えてみた結果
google pagespeed insightやGTmatrixの指摘事項をヒントに改善してみた中から、コストもかからず比較的簡単なものをピックアップしてみました。
wordpressサイトがパンダアップデートの影響を避けられるかもしれない5つの方法
パンダアップデートの影響に巻き込まれたような気が多分にしてきたので、回復実例を参考に対策を施しました。 wordpress向けrobots.txtの設定実例も記載しています。
Facebookのソーシャルプラグイン風のTwitterソーシャルプラグイン
twitterのフォロワーリストをfacebook風ソーシャルウィジェットのようなレイアウトでブログに掲載するjQueryプラグインです。 カスタマイズも容易なので使いやすいですよ。
.htaccessのRedirectRuleでURLクエリーを含めた301リダイレクトを設定する方法
.htaccessのRedirect RuleでURLクエリーを含めた場合のサンプルが少ないようなので参考になれば。
Twitter Mentions as Commentsが上手く機能しないので対応してみた
WordPressからTwitterへの更新通知をfeedburnerからwp to twitterプラグインに変更しました。 これでTwitter Mentions as Commentsも取得できるようになるけど、肝心の自動処理が動かないバグ?
俺の雑誌愛が暴走する雑誌だけのブログ『crocodile MAG’STACK』始めてました。
自分の雑誌録を兼ねたブログを立ち上げました。 読んで益なし損もなし。薬にならなきゃ毒でもなし。