まず、URL 書き換えルールの書き方について説明します。これは主に擬似静的に使用されます。書き換えルールは、.htaccess ファイルまたは Apache 構成ファイル (httpd.conf または sites_conf ディレクトリ内の一部の特定の Web サイト構成ファイル) の下に配置されます (実際には、これらはすべて似ています)。
先頭に次の内容を含む .htacess ファイルを開きます:
RewriteEngine on
RewriteBase /
RewriteEngine on は書き換えをオンにすることを意味し、RewriteBase / はすべてのルールが " より前に存在することを意味します/ "、これを記述した後は、後続のすべてのルールの先頭に "^" を記述するだけで済みます。ただし、このルールは .htacess ファイルでのみサポートされることに注意してください。サーバー構成ファイルの場合、これはルール 無視されるため、記述する必要はありません。
2
ルールを書く前に、まず書き換えでデザインされた特殊文字の意味を説明しておきます。
* は前の 0 文字以上を表します
+ は前の 1 文字以上を表します
?最初の 0 または 1 文字を表します
^ は文字列
の開始位置を表します
$ は文字列
の終了位置を表します。これは、任意の文字
を表すワイルドカード文字で、その後に続く文字をその文字自体に戻します。たとえば、「+」は他の意味ではなく、「+」を表します。
^ は角括弧内にないことを意味します。たとえば、[^.] は非ワイルドカード文字を表します。
つまり、「http://www.AAA.com/b.php?id=1」などの URL を「http://www.AAA.com/b/1」に擬似静的に変更したい場合は、 " 形式のルールは次のとおりです:
RewriteRule ^b/([0-9]+)/?$/b.php?id=$1 [L]
上記の例では、^ は次のとおりです。後続のドメイン名 URL の先頭の $ は文字列の終わり、つまりドメイン名の後の URL の終わりを表します。 [0-9] は数値を表します。URL が存在する限り、ID 番号が存在する必要があります。直後の + は、1 つ以上の数字が表示されることを示します。 [0-9]+ は一緒に接続されており、文字が数字の形式で表示され、数字の範囲は 0 ~ 9、出現回数は 1 回または複数回であることを示します。 $ は文字列の終わりを示し、?$ はルート ドメイン名の後のドメイン名の終わりを 0 または 1 文字で示します。 $1 はメモリ内の内容、つまり最初の括弧内の内容を表します。 [L] は、ルールが一致する場合に停止することを意味します。一致しない場合は、残りのルールを実行し続ける必要があります。通常、これに入る必要はありません。
3
疑似静的以外に、301 リダイレクトに .htacess を使用する必要がある場合もあります。記号の意味は変わりません。例:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^AAA.com$ [NC]
RewriteRule ^(.*) http://www. AAA.com /$1 [R=301,L]
上記のルールは、AAA.com 301 を www.AAA.com に変更するものです。記号の意味は説明する必要はないと思います。
それでは、これら 2 つのルールを踏まえた上で、Web サイトが改訂されて URL 構造が変更された場合はどうすればよいでしょうか。答えは簡単です。書き換えルールを記述することで、.htacess ファイルを使用して古い URL を新しい URL に変換できます。
RewriteRule ^(.*?)/?index.html$/$1? [L,R=301]
このルールは、a/index.html 301 から a/ までの URL を検索することです。ドメイン名がダウンしました。最も重要なことは、ルールを学習して適用することです。書き換えルールを習得すれば、Web サイトのすべての URL とリターン コードが制御できるようになると思います。
上記は、Apache サーバーがリライトをオンにした後の記述方法とルールです。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。