開発者ドキュメント

Mod_Rewriteを設定する方法

Mod_Rewriteについて

前回ショッピングサイトにアクセスしたときのことを考えて、購入する必要のある特定のものを1つ探してください。 最終的にページに到達したとき、URLは次のようになっている可能性があります。

gizmo.com/latest_and_greatest/specific_gadgets/exactly_what_youre_looking_for

これは、このWebサイトが購入に必要なすべてのディレクトリを設定するのに時間がかかったためではなく、Mod_Rewriteと呼ばれる便利なモジュールのためです。 Mod_Rewriteを使用すると、必要に応じてカスタムURLと簡略化URLを作成できます。 実際には、実際のURLはこれに近いように見えた可能性があります。

http://www.gizmo.com/gp/itemB004RYVI0Q/ref=as_li_ss_tl?

このチュートリアルでは、Mod_Rewriteのアクティブ化、必要な.htaccessページの作成と使用、およびURL書き換えの設定について説明します。

コンテンツ

  1. Mod_Rewriteをアクティブ化する方法
  2. .htaccessファイルを作成して使用を許可する方法
  3. 書き換えルールの使用方法
  4. RewriteCondディレクティブの使用方法
  5. 資力

設定

このチュートリアルの手順では、ユーザーがroot権限を持っている必要があります。 手順3と4で、Ubuntuここで設定する方法を確認できます。

さらに、サーバーにapacheをインストールする必要があります。 お持ちでない場合は、次のコマンドを使用してUbuntu用にダウンロードできます。

sudo apt-get install apache2

セクション1-Mod_Rewritesをアクティブ化する方法

実際のURL書き換えの生成を開始する前に、それらを制御するapachemod_rewriteモジュールをアクティブ化する必要があります。 これは簡単です:

sudo a2enmod rewrite

このコマンドはモジュールをアクティブにします。または、すでにアクティブになっている場合は、「モジュールの書き換えはすでに有効になっています」という文字を表示します。

セクション2— .htaccessファイルについて:

モジュールがアクティブ化されたら、Webサイトディレクトリに.htaccessファイルを作成して、URLの書き換えを設定できます。

.htaccessファイルは、サーバー構成ファイルを変更せずにWebサイトの詳細を構成する方法です。 ファイル名を開始する期間は、ファイルをフォルダー内に隠しておきます。

さらに、.htaccessファイルの配置も重要です。 そのファイルの構成は、そのディレクトリとその下のディレクトリのすべてに影響します。

テキストエディタで.htaccessファイルを作成し(他の拡張子や名前を付けずに.htaccessのみに名前を付けるようにしてください)、ftpクライアントを介してサイトにアップロードできます。

または、このコマンドを使用して、example.comをサイトの名前に置き換え、ターミナルに.htaccessファイルを作成することもできます。

sudo nano /var/www/example.com/.htaccess

.htaccessファイルの変更を許可する方法:

.htaccessファイルが標準のWebサイト構成を上書きできるようにするには、構成ファイルを開くことから始めます。 注意:このステップにはsudo権限が必要です。

sudo nano /etc/apache2/sites-available/default

そのファイルに入ったら、次のセクションを見つけて、AllowOverrideという行をNoneからAllに変更します。 セクションは次のようになります。

 <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
 </Directory>

そのファイルを保存して終了したら、apacheを再起動します。 .htacessファイルがすべてのサイトで利用できるようになります。

sudo service apache2 restart

これで、サイトのURLを書き換える準備が整いました。

セクション3—URLを書き換える方法

URLの書き換え操作全体は、.htaccessファイル内で行われます。

全体として、すべてのURL書き換えコマンドは同じパターンに従います。

 RewriteRule Pattern Substitution [OptionalFlags]

各部分の簡単な説明は次のとおりです。

3つのURL書き換えの例:

例1:ページAに移動し、ページBを見つけます。

これは、URL書き換えの最も基本的な例です。サイトへの訪問者は、あるURLをブラウザに入力しますが、別のURLにリダイレクトされます。 設定方法は次のとおりです。

先に進んで、サイト用に2つの別々のページを作成しましょう。たとえば、1つはApple(apples.html)用、もう1つはOranges(oranges.html)用です。

コードをAppleページにコピーします。

<html>
  <head>
    <title>Apples</title>
  </head>
  <body>
    <h1>This page is about Apples</h1>
  </body>
</html>

その後、適切なものを参照するためにすべての果物の名前を置き換えて、オレンジ色のページを作成できます。

次に、.htaccessファイルを開きます。

sudo nano /var/www/example.com/.htaccess

次のURL書き換えコマンドをファイルに追加します。

RewriteEngine on
RewriteRule ^oranges.html$ apples.html

保存して終了。

すべてが整ったら、「/oranges.html」で終わるサイトにアクセスします。表示されるすべての情報は「/apple.html」サイトから取得されます。

今説明のために:

例2:WebサイトのURLにパラメーターがあります。 サブディレクトリのように見せるための方法。

最初の例は、単に別のサイトに置き換える必要があるサイトに言及していました。 ただし、以下の例は、URLにパラメーターがある場合に見られる一般的なシナリオに対応しています。

このURLをチェックしてください:

http://example.com/results.php?products=apple

次のように表示すると、はるかに明確になります。

 http://example.com/products/apple

.htaccessファイル内の行は次のようになります。

RewriteEngine on
RewriteRule ^products/([A-Za-z0-9-]+)/?$ results.php?products=$1 [NC]

今説明のために:

例3:サイトに扱いにくいURLがあります。 それをきれいにする方法

この種の状況は、URLが長く複雑な場合に発生する可能性があります。

例として、以下のURLを取り上げます。

http://example.com/results.php?products=produce&type=fruit&species=apple

URLは正しいコンテンツを配信するのに効果的ですが、消費者にとってはあまり印象的ではありません。 URLを書き換えると、URLをより単純で明確なものに変換できます。

http://example.com/produce/fruit/apple

これを実現するには、.htaccessファイルに次の行が必要です(.htaccessファイルに必要な数のセクションを追加できます)。

RewriteEngine on
RewriteRule ^(meat|produce|dairy)/([^/.]+)/([^/.]+)$ results.php?products=$1&type=$2&species=$3

今説明のために:

2ページに続く

EtelSverdlov著
モバイルバージョンを終了