ホームページ >バックエンド開発 >PHPチュートリアル >Apache の書き換えテクノロジーを使用する
Apache の書き換えテクノロジを使用する
PHP プロジェクトを実行する場合、基本的な要件は /user/heiyeluren を /user.php?uid=heiyeluren などの URL にリダイレクトすることです。もちろん、/article をリダイレクトすることもできます。 /200707291011.html を /article.php?id=200507291011 などに変更すると、シミュレーションは実際の URL アドレスを隠すことができる静的ページであるようで、レインブーツなどの基本的なセキュリティ対策に役立ちます。したがって、書き換えが良い解決策であるようです。
Apache で rewrite を実行するには、まず mod_rewrite.c ファイルである mod_rewrite コンポーネントをインストールする必要があります。次に、mod_rewrite を ./configure に入れてインストールする必要があります。
通常、リライトを設定する場合は、httpd.conf で設定するか、Web ページの現在のディレクトリにある .htaccess ファイルで定義して、どのファイルにリダイレクトするかを決定することができます。柔軟性があり、仮想化にも適しています。ホスト ユーザーが実行します。
.htaccess ファイルの例を見てみましょう:
1
2 RewriteEngine On
3 RewriteBase /
4 RewriteCond %{REQUEST_FILENAME} -f [OR]
5 RewriteCond % {REQUEST_F ILENAME } -d
6 RewriteRule ^.*$ - [S=42]
7
8 #RewriteRule ^share/$ /share.php [QSA,L]
9 RewriteRule ^tag/([^/]+ )/? $ /user_tags.php?tag=$1 [QSA,L]
10 RewriteRule ^city/([^/]+)/?$ /user_city.php?tag=$1 [QSA,L]
11 #RewriteRule ^([ ^/]+)/day/([^/]+)/?$ /user_share.php?id=$1&s=1&selTime=$2 [QSA,L]
12 #RewriteRule ^([^/]+ )/日 /([^/]+)/?$ /user_share.php?id=$1&s=1&selTime=$2 [QSA,L]
13
14 RewriteRule ^([^/]+)/日/([ ^/] +)/?$ /user_share.php?id=$1&s=1&selTime=$2 [QSA,L]
15 RewriteRule ^([^/]+)/week/([^/]+)/?$ /user_share.php?id=$1&s=2&selTime=$2 [QSA,L]
16 RewRiteRule ^([^/]+)/month/([^/]+)/?$ /user_share.php?id=$1 &s=3&selTime =$2 [QSA,L]
17
18 RewriteRule ^([^/]+)/day/?$ /user_share.php?id=$1&s=1 [QSA,L]
19 RewriteRule ^([ ^/] +)/week/?$ /user_share.php?id=$1&s=2 [QSA,L]
20 RewriteRule ^([^/]+)/month/?$ /user_share.php?id=$1 &s=3 [QSA,L]
21
22 RewriteRule ^([^/]+)/?$ /user_share.php?id=$1 [QSA,L]
23
ですかなり長くなりましたので、重要な内容に焦点を当ててみましょう。
Text:
任意の 1 文字と一致します
[chars] 現在の文字と一致します
[^chars] 現在の文字と一致しません
text1|text2任意の text1 または text2 が含まれます A
数量子:
? (テキスト) テキストのグループ化
' s ' を使用して代替案の境界線を設定するか、
一致するコンテンツの開始タグ
エスケープ:
char は、「.[]()」やその他の文字のエスケープを含む特殊文字をエスケープするために使用されます
基本的なルールは上記のとおりで、次の正規表現のようになります: ^/([ ^ /]+)/~([^/]+)/(.*)$ は、/Language/~ Realname/.../File のようなパスに一致します。
RewriteRule アクセスするパス 指定する必要がある実際のパス
これは非常に明確です。たとえば、/user/heiyeluren を /user.php にリダイレクトしたい場合です。 ?uid=heiyeluren の場合、私のルールは次のようになります:
1 つの例から推論すると、ルールの書き方が分かりやすく、上記のルールも理解できるようになりました。 スクリプトの内容は消えています。
明確なことは何もありません。特定の内容をより深く理解するには、添付のリンクを参照してください。下手な文章ですがご容赦ください。
添付ファイル:
Apache Rewrite テクノロジー http://www.yujs.com/recommendation/004.htm
Apache モジュール mod_rewrite http://linux.dalouis.com/doc/apache2.0/mod/mod_rewrite.html
URL書き換えガイド http://linux.dalouis.com/doc/apache2.0/misc/rewriteguide.html
Apache HTTP Server 2.0 バージョンのドキュメント http://linux.dalouis.com/doc/apache2.0/