Apacheはルールの例を書き直します
フォースHTTPSジャンプ:r = 301を使用して、書き直しを介して非HTTPSリクエストを要求し、httpsに永続的にリダイレクトします。 2。ファイル拡張子を削除します:!-fおよび!-d条件を使用して、as /art as /about.phpを書き直します。 3. wwwまたはwwwなし:http_hostを介して一致し、301を統一ドメイン名形式にジャンプします。 4.擬似静的URLのカスタマイズ:parse /article /123 /title to /article.php?id=123; 5.画像リンクの盗難を防ぐ:参照ヘッダーを確認し、このサイトからのものがない場合は、プロンプト画像または403を返します。 6.マルチコンディションの組み合わせリダイレクト:http_user_agentを介して悪意のあるクローラーを一致させ、ブロックされたページにジャンプします。 7.単純なURLリダイレクト:古いページ301を新しいページにジャンプして、SEO重量を維持します。 8。美しいURLをオンにします:すべての非ファイルおよび非方向の要求をindex.phpにポイントして、フロントエンドコントローラーモードをサポートします。すべてのルールは、書き換えがオンになった後に有効にする必要があります。エラーがサービスの利用不能を引き起こすのを防ぐために、構成アイテムを1つずつテストおよびバックアップすることをお勧めします。
Apache Rewriteruleは、URLリクエストを書き換えるためのApacheのmod_rewriteモジュールが提供する強力な機能です。多くの場合、SEOに優しいリンク、Webサイトのジャンプ、リンクの盗難を防ぎ、強制HTTPSジャンプを実装するために使用されます。 .htaccess
ファイルまたはApache仮想ホスト構成のいくつかの一般的で実用的な書き直し例を以下に示します。

1。フォースHTTPSジャンプ
すべてのhttpリクエストをhttpsにリダイレクトします。
書き換えます 書き換えた%{https} off rewriterule ^(。*)$ https://%{http_host}%{request_uri} [l、r = 301]
-
RewriteCond %{HTTPS} off
:現在は非HTTPSかどうかを決定します。 -
R=301
:301永久リダイレクトに戻ります。 -
L
:これは最後のルールであり、将来処理されないことを意味します。
サイト全体にHTTPSが必要なシナリオに適しています。
2。ファイル拡張子(.htmlや.phpなど)を削除します
Accessing /about
egation /about.php
など、 .php
拡張機能を非表示にします:
書き換えます rewritecond%{request_filename}!-f rewritecond%{request_filename}! - d rewriterule ^([a-za-z0-9_-])$ $ 1.php [l]
-
!-f
and!-d
:要求されたファイルまたはディレクトリが実際の既存のファイルではないことを確認し、競合を避けてください。 -
^([a-zA-Z0-9_-] )$
:拡張機能なしでURLを一致させます。 -
$1.php
:同じ名前の.php
ファイルに内部書き換えます。
.php
、静的ページで動作する.html
に置き換えることができます。
3。WWWを持ち込むことを余儀なくされているか、ドメイン名ではない
強制www:
書き換えます rewritecond%{http_host} ^example \ .com $ [nc] rewriterule ^(。*)$ https://www.example.com/$1 [l、r = 301]
www(より一般的な)を持ち込むことを余儀なくされました:
書き換えます rewritecond%{http_host} ^www \ .example \ .com $ [nc] rewriterule ^(。*)$ https://example.com/$1 [l、r = 301]
-
[NC]
:ケースを無視します。 - 301ジャンプを使用することは、SEOにとって有益です。ドメイン名の重みを統合します。
4。擬似静的URLをカスタマイズします(記事IDがタイトルとして表示されます)
書き換え/article/123/my-great-article
to /article.php?id=123
:
書き換えます rewriterule ^article/([0-9])/([a-za-z0-9_-])$/article.php?id=$1 [l]
- 最初のブラケットは記事IDをキャプチャします。
- 2番目のブラケットはタイトルをキャプチャします(SEOのみ、ごくわずかです)。
- 実際の処理では、
id
パラメーターを使用します。
この方法は、バックエンドロジックが変更されていないままである間、URLをより友好的にします。
5.画像リンク泥棒を防止します
他のWebサイトが画像リソースを直接参照することをブロックします。
書き換えます rewritecond%{http_referer}!^$ rewritecond%{http_referer}!^https://(www \。)?yourdomain \ .com/.*$ [nc] rewriterule \。(jpg | jpeg | png | gif | webp)$ https://yourdomain.com/nohotlinking.jpg [r、l]
-
Referer
ヘッダーが空であるか(直接アクセスを許可します)、またはドメイン名から来ているかどうかを確認してください。 - リンクが盗まれたときに一般的な画像形式を一致させ、プロンプト画像を返します。
返品403ステータスコードに置き換えることができます:
rewriterule \。(jpg | jpeg | png | gif)$ - [f、l]
6.マルチコンディションの組み合わせ:特定のユーザーエージェントのみにリダイレクトします
例:クローラーをブロックするか、モバイルユーザーをリダイレクトします。
書き換えます rewritecond%{http_user_agent} ^badbot [nc、または] rewritecond%{http_user_agent} spambot [nc] rewriterule ^。*$ https://example.com/blocked.html [r、l]
-
OR
、「または」関係を表し、次の条件は満たされた場合にのみトリガーされます。 - 悪意のあるクローラーまたはテストロボットをブロックするために使用されます。
7.単純なURLリダイレクト(古いページ→新しいページ)
rewriterule ^old-page \ .html $ /new-page.html [r = 301、l]
- ウェブサイトが再設計された後に古いリンクを利用できるようにするのに適しています。
-
R=301
を使用して、検索エンジンに永久に移行されたことを伝えます。
8。「Pretty URL」サポートを有効にします(PHPフレームワークで一般的に使用されるなど)
たとえば、Laravel、Symfonyなどのフレームワークは、すべてのリクエストをindex.php
に向ける必要があります。
書き換えます rewritecond%{request_filename}!-f rewritecond%{request_filename}! - d rewriterule ^(。*)$ index.php/$ 1 [qsa、l]
-
QSA
:元のクエリパラメーター(?id=1
など)を保持します。 - フロントコントローラーモードに適しています。
ヒント
-
書き換えをオンにします:すべてのルール
RewriteEngine On
が必要です。 -
テスト順序:ルールは順番に実行され、
L
フラグはその後の干渉を避けるために使用されることに注意してください。 -
デバッグのヒント:
RewriteLog
(古いバージョン)を使用するか、404 Logcurl -I
テストを渡してジャンプできます。 -
範囲:
.htaccess
のパスには/
にあり、仮想ホストで調整する必要がある場合があります。
基本的にこれらの一般的なシナリオ。実際にそれを使用して、通常の要求への偶発的な損傷を避けるために、1つずつテストすることをお勧めします。書き直しは強力ですが、定期的なエラーにより、ウェブサイト全体がアクセスできない場合があります。変更前に構成をバックアップするのが最善です。
以上がApacheはルールの例を書き直しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

CertbotとそのApacheプラグインをインストールします。 2。証明書を取得してドメイン名を構成するためにcertbotを実行します。 3.オプションで、HTTPからHTTPSへの自動リダイレクトを構成します。 4.自動更新をセットアップし、ドライランテストに合格します。 5.インストールを確認し、Apacheの通常のリロード構成を確認します。証明書が正常に展開されると、更新は自動的に管理されます。プロセス全体が完了すると、安全なHTTPSアクセスを実現できます。

thebestapachempmdependsonyourapplicationStackandtrafficneeds:1.Usepreforkifrelyingonnon-thread-safemoduleslikemod_phpandprioritizingSustability.2.USERTOTOHIGHTRAFFICWITHWITHWITHTHREAD-SAFESETUPSUPSINT.BETETEMEMORYEFIECTIENCE.

useventmpmforhigh-concurrencyworkloads、特にwithphp-fpm、orpreforkonlyifrequiredbynon-thread-safemodules.2.enablekeepalivewithmaxkeepaliverequestssetso100andkeepalivetimeoutbetbet bet wiene2–5sondstobalanceconneftioneeandresurce

Checkurrentapacheversionsinghttpd-vorapache2-vandverifysvicstatusviasisstl.2.ondebian/ubuntu、upgradeusingsusudoapdat eandsudoaptinstallapache2、optionalAddingtheppa:andrej/apache2fornewersions.3.onrhels usesudodnfupdatadadagsud

KeepAliveonは、持続的な接続を有効にします。 2.maxkeepaliverequests100接続あたりのリクエストの最大数を設定します。 3.KeePalivetimeout5後続のリクエストを待つためのタイムアウトを設定し、構成後にApacheを再起動し、Curlまたはブラウザ開発者ツールを使用して、KeepAliveがサーバーのパフォーマンスを最適化するために効果的かどうかを確認します。

カスタム404エラーページを設定するには、ページファイルを作成してApacheでパスを構成する必要があります。 1.ウェブサイトルートディレクトリに404.htmlを保存するなど、カスタム404ページを作成します。 2。Webサイトルートディレクトリの.htaccessファイルにerperordocument404/404.htmlを追加して、AllowoverRideが有効になっていることを確認します。 3. VPSまたはスタンドアロンサーバーを使用する場合、仮想ホスト構成ファイル(000-DEFAULT.CONFなど)にErrorDocument404/404.htmlを追加し、Apacheサービスを再起動できます。 4.存在しないURLにアクセスして、カスタムページが有効になるかどうかをテストします。構成するとき

SSLCertificateFileはSSL証明書ファイルへのパスであり、SSLCertificateKeyFileは秘密キーファイルへのパスです。前者は、サーバーのアイデンティティを確認するためにブラウザが使用するパブリックキーとID情報を含むCAによって発行された.crtまたは.pemファイルを指します。後者は、証明書の公開鍵に一致する秘密鍵の場所を指定し、厳密に機密および制限されたアクセスでなければなりません。 2つは適切に動作するために一致する必要があります。証明書と秘密鍵のモジュラス値が抽出されて比較されるかどうかを確認できます。 CSRが一貫していない場合は、CSRを再生して新しい証明書を取得する必要があります。構成するときは、パスが正しい、ファイルが存在し、権限が適切に設定されていることを確認します。そうしないと、ApacheがHTTPSサービスを開始できないか、セキュリティエラーが発生します。

Webサイトディレクトリを作成し、テストページを追加します。 2。/etc/apache2/sites-abailable/、set servername、documentrootなどの下で仮想ホスト構成ファイルを作成します。 3. A2ENSITEを使用してサイトを有効にし、デフォルトサイトを無効にし、構成のテスト後にApacheをリロードします。 4.ローカルテスト中に /etc /ホストにドメイン名を追加し、127.0.0.1を指します。上記の手順を完了したら、Example.comにアクセスしてWebサイトのコンテンツを確認すると、仮想ホストの構成が成功します。
