特定IPからのみアクセスを許可するホワイトリスト

order deny,allow
deny from all
allow from IPアドレス

ブラックリスト

order allow,deny
allow from all
deny from IPアドレス

URLをwww無しに統一するリダイレクト

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301]

httpsリダイレクト

ディレクトリdir1,dir2以外をHTTPSにする例

SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/dir1/
RewriteCond %{REQUEST_URI} !^/dir2/
RewriteCond %{ENV:HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

エラー転送

ErrorDocument 403 /403error.html
ErrorDocument 404 /404error.html
ErrorDocument 500 /500error.html

ファイル一覧を非表示にする

相対パスとするのがよい.

Options -Indexes

画像への直リンク禁止

http://example.comまたはhttps://example.com全体で一般的な画像ファイルに適用するケース

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} \.(gif|jpe?g?|png)$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://example\.com [NC]
RewriteRule \.(gif|jpe?g?|png)$ - [F,NC,L]
</IfModule>

特定拡張子へのアクセス拒否

<FilesMatch "^(\.拡張子1|\.拡張子2)$">
deny from all
</FilesMatch>

次は.htaccessへのアクセスを禁止する例

<Files .htaccess>
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</Files>

圧縮による高速化

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript
</IfModule>

キャッシュに期限を設ける

<IfModule mod_expires.c>
ExpiresActive On
<FilesMatch "\.(css|js)$">
ExpiresDefault "access plus 1 month"
</FilesMatch>
<FilesMatch "\.(gif|jpe?g|png)$">
ExpiresDefault "access plus 1 month"
</FilesMatch>
</IfModule>

指定日時にクローラーの再訪を促す

<IfModule mod_headers.c>
Header set Retry-After "日時"
</IfModule>

日時は例えばSat, 1 September 2018 12:00:00 GMTなど.