web.config (IIS) および .htaccess (Apache) の構成

web.config (IIS) および .htaccess (Apache) の構成

xml

<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<構成>
	<システム.Webサーバー>

		<httpプロトコル>
			<カスタムヘッダー>
				<add name="Access-Control-Allow-Origin" value="URL_TO_ALLOW"/>
				<add name="アクセス制御許可メソッド" value="GET、PUT、POST、DELETE、OPTIONS"/>
				<add name="Access-Control-Allow-Headers" value="Content-Type"/>
			</カスタムヘッダー>
		</httpプロトコル>

</system.webServer>
</構成>

強制HTTPS

<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<構成>
	<システム.Webサーバー>

		<書き直し>
			<ルール>

			<rule name="HTTPS を強制" stopProcessing="true">
  		<マッチURL="(.*)" />
  		<条件論理グループ="MatchAll">
    	<add input="{HTTPS}" pattern="off" ignoreCase="true" />
    	<add input="{REQUEST_URI}" negate="true" pattern="/ADD_PATTERM_TO_EXCLUDE_FILES_OR_FOLDERS/" ignoreCase="true" />
  		</条件>
  		<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
			</ルール>

			</ルール>
		</書き換え>

</system.webServer>
</構成>

ブラウザキャッシュ

# ブラウザのキャッシュを有効にする
<IfModule mod_expires.c>
有効期限有効日
ExpiresByType image/jpg 「アクセス 1 年」
ExpiresByType image/jpeg "アクセス 1 年"
ExpiresByType イメージ/gif 「アクセス 1 年」
ExpiresByType image/png "アクセス 1 年"
ExpiresByType text/css "アクセス 1 か月"
ExpiresByType application/pdf 「アクセス 1 か月」
ExpiresByType text/x-javascript "アクセス 1 か月"
ExpiresByType application/x-shockwave-flash 「1 か月アクセス」
ExpiresByType image/x-icon「アクセス 1 年」
有効期限デフォルトは「2日間アクセス」
</モジュール>

カスタムエラーページ

# 4xx および 5xx エラー用のカスタム エラー ページを設定します
エラードキュメント 403 /custom-403.html
エラードキュメント 404 /custom-404.html

強制HTTPS

RewriteEngine オン
RewriteCond %{HTTPS} オフ
# まずHTTPSに書き換えます:
# ここにwww.を入れないでください。すでにwww.がある場合はそれが追加されますが、そうでない場合は
# 後続のルールでそれをキャッチします。
書き換えルール .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# ここで、間違ったドメインへのリクエストを www を使用するように書き換えます。
# [NC]は大文字と小文字を区別しない一致です
書き換え条件 %{HTTP_HOST} !^www\. [NC]
書き換えルール .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

構成ファイルへのアクセスを禁止する

# すべての .htaccess ファイルへのアクセスを拒否します
<ファイル ~ "^.*\.([Hh][Tt][Aa])">
注文許可、拒否
すべて拒否
すべてを満足させる
</ファイル>

url書き換え

RewriteEngine オン
書き換え条件 %{REQUEST_FILENAME} !-f
書き換え条件 %{REQUEST_FILENAME} !-d
書き換えルール ^ index.php [QSA,L]

さて、これでこの記事は終わりです。必要な友人はこの記事から学ぶことができます。

<<:  Vue vee-validateプラグインの簡単な使い方

>>:  Mysql Explainコマンドの使用と分析

推薦する

MySQLはgroup_concat()関数に基づいて複数のデータ行を結合します

非常に便利な機能group_concat() について、マニュアルには次のように記載されています: ...

MySQL データ挿入効率の比較

データを挿入するとき、以前オフィス システムに取り組んでいたときにはデータベースのパフォーマンスにつ...

設定ファイルを変更した後、操作を再開します

余計なことは言わないで、コードだけ見てみましょう〜 # docker-compose をダウン # ...

20個のJavaScriptワンラインコードを共有する

目次1. ブラウザのクッキーの値を取得する2. RGBを16進数に変換する3. クリップボードにコピ...

MySQL における EXISTS と IN の使用法の比較

1. 使用法: (1)EXISTSの使用 ucsc_project_batch a から、存在する場...

vue backtop コンポーネントを実装するための完全なコード

効果: コード: <テンプレート> <div class="back-t...

Vueでドラッグ可能なコンポーネントを実装する方法

この記事では、Vueでドラッグ可能なコンポーネントとドラッグ可能なコンポーネントを実装する方法を参考...

MySQLで時間別データと最後の時間別データの差をクエリするアイデアの詳細な説明

1. はじめに要件は、特定の時間範囲内で、1 時間ごとのデータと前の 1 時間ごとのデータの差と比率...

Vueプロジェクトでパラメータジャンプ機能を実装する

ページの説明:​ メインページ: 名前 —> shishengzuotanhuichaxun ...

CSS のマージンの崩壊問題を解決する方法

まず、マージン崩壊が発生する 3 つの状況を見てみましょう。 1. 隣接する 2 つのブロックレベル...

SqlクエリMySqlデータベーステーブル名と説明テーブルフィールド(列)情報

以下では、SQL クエリ ステートメントを使用して、Mysql データベース内のテーブルのテーブル名...

Linux の grep コマンドと egrep コマンドの詳細な説明

反復/egrep構文: grep [-cinvABC] 'word' ファイル名-c...

JavaScript フォーム検証の例

HTML フォームは、名前、電子メール アドレス、場所、年齢などのユーザー情報を収集するためによく使...

MySQL の暗号化と復号化の例

MySQL の暗号化と復号化の例データの暗号化と復号化はセキュリティ分野で非常に重要です。プログラマ...

MySQL で不明なフィールド名を回避する方法

序文この記事では、DDCTF の 5 番目の質問、つまり不明なフィールド名をバイパスする手法を紹介し...