.htaccess ファイルをビジュアルに生成 — Apache の知識不要。セクションをON/OFFして、リダイレクトルールを追加し、セキュリティヘッダーを設定して、すぐに使えるファイルをダウンロードできます。
プリセット:
<!-- リダイレクト -->
<div class="ha-section" id="ha-sec-redirects">
<div class="ha-section-header" onclick="haToggleSection('redirects')">
<input type="checkbox" id="ha-chk-redirects" onclick="event.stopPropagation();haRender()" checked>
<span class="ha-section-title">リダイレクト</span>
<span class="ha-section-badge">301 / 302</span>
<span class="ha-section-chevron" id="ha-chev-redirects">▼</span>
</div>
<div class="ha-section-body" id="ha-body-redirects">
<div class="ha-field-row" style="margin-bottom:10px;">
<span class="ha-field-label">デフォルト種別</span>
<select class="ha-select" id="ha-redirect-type" onchange="haRender()" style="max-width:200px;">
<option value="301">301 恒久リダイレクト</option>
<option value="302">302 一時リダイレクト</option>
</select>
</div>
<div class="ha-redirect-list" id="ha-redirect-list"></div>
<button class="ha-add-btn" onclick="haAddRedirect()">+ リダイレクトルールを追加</button>
<div class="ha-hint">転送元パス(例:/old-page)→ 転送先URL</div>
</div>
</div>
<!-- セキュリティヘッダー -->
<div class="ha-section" id="ha-sec-security">
<div class="ha-section-header" onclick="haToggleSection('security')">
<input type="checkbox" id="ha-chk-security" onclick="event.stopPropagation();haRender()" checked>
<span class="ha-section-title">セキュリティヘッダー</span>
<span class="ha-section-chevron" id="ha-chev-security">▼</span>
</div>
<div class="ha-section-body" id="ha-body-security">
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-sec-xframe" onchange="haRender()" checked>
<span>X-Frame-Options: SAMEORIGIN(クリックジャッキング対策)</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-sec-xcontent" onchange="haRender()" checked>
<span>X-Content-Type-Options: nosniff(MIMEスニッフィング防止)</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-sec-xss" onchange="haRender()" checked>
<span>X-XSS-Protection: 1; mode=block(XSS対策)</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-sec-referrer" onchange="haRender()">
<span>Referrer-Policy: strict-origin-when-cross-origin</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-sec-hsts" onchange="haRender()">
<span>Strict-Transport-Security(HSTS / HTTPS強制)</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-sec-csp" onchange="haRender()">
<span>Content-Security-Policy: default-src 'self'</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-sec-serverhide" onchange="haRender()" checked>
<span>サーバー情報を非表示(ServerTokens Prod)</span>
</div>
</div>
</div>
<!-- キャッシュ -->
<div class="ha-section" id="ha-sec-caching">
<div class="ha-section-header" onclick="haToggleSection('caching')">
<input type="checkbox" id="ha-chk-caching" onclick="event.stopPropagation();haRender()">
<span class="ha-section-title">ブラウザキャッシュ</span>
<span class="ha-section-chevron" id="ha-chev-caching">▶</span>
</div>
<div class="ha-section-body ha-hidden" id="ha-body-caching">
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-cache-images" onchange="haRender()" checked>
<span>画像(jpg, png, gif, webp, svg)— 1ヶ月</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-cache-css" onchange="haRender()" checked>
<span>CSS・JavaScript — 1週間</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-cache-fonts" onchange="haRender()" checked>
<span>フォント(woff, woff2, ttf)— 1年間</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-cache-html" onchange="haRender()">
<span>HTML — 1時間</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-cache-etag" onchange="haRender()">
<span>ETagを無効化(CDN環境向け)</span>
</div>
</div>
</div>
<!-- CORS -->
<div class="ha-section" id="ha-sec-cors">
<div class="ha-section-header" onclick="haToggleSection('cors')">
<input type="checkbox" id="ha-chk-cors" onclick="event.stopPropagation();haRender()">
<span class="ha-section-title">CORS設定</span>
<span class="ha-section-chevron" id="ha-chev-cors">▶</span>
</div>
<div class="ha-section-body ha-hidden" id="ha-body-cors">
<div class="ha-field-row">
<span class="ha-field-label">許可オリジン</span>
<input type="text" class="ha-input" id="ha-cors-origin" value="*" onchange="haRender()" placeholder="* または https://example.com">
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-cors-methods" onchange="haRender()" checked>
<span>許可メソッド: GET, POST, OPTIONS</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-cors-headers" onchange="haRender()" checked>
<span>許可ヘッダー: Content-Type, Authorization</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-cors-fonts-only" onchange="haRender()">
<span>フォントのみにCORSを適用(推奨)</span>
</div>
</div>
</div>
<!-- Gzip圧縮 -->
<div class="ha-section" id="ha-sec-gzip">
<div class="ha-section-header" onclick="haToggleSection('gzip')">
<input type="checkbox" id="ha-chk-gzip" onclick="event.stopPropagation();haRender()">
<span class="ha-section-title">Gzip圧縮</span>
<span class="ha-section-chevron" id="ha-chev-gzip">▶</span>
</div>
<div class="ha-section-body ha-hidden" id="ha-body-gzip">
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-gzip-html" onchange="haRender()" checked>
<span>HTML・XML・プレーンテキスト</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-gzip-css" onchange="haRender()" checked>
<span>CSS・JavaScript</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-gzip-fonts" onchange="haRender()" checked>
<span>フォント(SVG・TTF)</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-gzip-json" onchange="haRender()" checked>
<span>JSON・API レスポンス</span>
</div>
</div>
</div>
<!-- エラーページ -->
<div class="ha-section" id="ha-sec-errors">
<div class="ha-section-header" onclick="haToggleSection('errors')">
<input type="checkbox" id="ha-chk-errors" onclick="event.stopPropagation();haRender()">
<span class="ha-section-title">カスタムエラーページ</span>
<span class="ha-section-chevron" id="ha-chev-errors">▶</span>
</div>
<div class="ha-section-body ha-hidden" id="ha-body-errors">
<div class="ha-field-row">
<span class="ha-field-label">404 Not Found</span>
<input type="text" class="ha-input" id="ha-err-404" value="/404.html" onchange="haRender()" placeholder="/404.html">
</div>
<div class="ha-field-row">
<span class="ha-field-label">403 Forbidden</span>
<input type="text" class="ha-input" id="ha-err-403" value="/403.html" onchange="haRender()" placeholder="/403.html">
</div>
<div class="ha-field-row">
<span class="ha-field-label">500 Server Error</span>
<input type="text" class="ha-input" id="ha-err-500" value="/500.html" onchange="haRender()" placeholder="/500.html">
</div>
<div class="ha-field-row">
<span class="ha-field-label">401 Unauthorized</span>
<input type="text" class="ha-input" id="ha-err-401" value="" onchange="haRender()" placeholder="/401.html(省略可)">
</div>
</div>
</div>
<!-- ディレクトリオプション -->
<div class="ha-section" id="ha-sec-directory">
<div class="ha-section-header" onclick="haToggleSection('directory')">
<input type="checkbox" id="ha-chk-directory" onclick="event.stopPropagation();haRender()">
<span class="ha-section-title">ディレクトリオプション</span>
<span class="ha-section-chevron" id="ha-chev-directory">▶</span>
</div>
<div class="ha-section-body ha-hidden" id="ha-body-directory">
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-dir-noindex" onchange="haRender()" checked>
<span>ディレクトリ一覧を無効化(Options -Indexes)</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-dir-followlinks" onchange="haRender()">
<span>シンボリックリンクを許可(Options +FollowSymLinks)</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-dir-blockdotfiles" onchange="haRender()" checked>
<span>ドットファイルへのアクセスをブロック(.env, .git など)</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-dir-blockphp" onchange="haRender()">
<span>アップロードフォルダでのPHP実行を禁止</span>
</div>
<div class="ha-checkbox-row">
<input type="checkbox" id="ha-dir-badbots" onchange="haRender()">
<span>悪意あるBot(SemrushBot, AhrefsBot等)をブロック</span>
</div>
<div class="ha-field-row" style="margin-top:8px;">
<span class="ha-field-label">デフォルト文字コード</span>
<select class="ha-select" id="ha-dir-charset" onchange="haRender()" style="max-width:200px;">
<option value="UTF-8" selected>UTF-8</option>
<option value="ISO-8859-1">ISO-8859-1</option>
<option value="">(指定なし)</option>
</select>
</div>
</div>
</div>
関連ツール
robots.txtを生成 → Robots.txtジェネレーター
メタタグを作成 → メタタグジェネレーター
SQLを整形 → SQLフォーマッター
確定申告・会計をもっとラクに? freee会計 なら、フリーランスの経費管理もクラウドで簡単。まずは無料で試してみましょう。
