mod_rewriteは、ルールベースの書き換えエンジンを使用するApacheモジュールです。これは、要求されたURLを新しいURLに変換およびリダイレクトするために使用されます。これにより、URLを動的に変更できます。したがって、訪問者はアドレスバーにURLの変更が表示されることはありません。 mod_rewriteを使用すると、無制限の数のルールを書き換えることができます。これにより、環境変数、HTTPヘッダー、サーバー変数に基づいてURLを書き換えることができます。
この投稿では、mod_rewriteを使用してUbuntuVPSでApacheのURLを書き換える方法を示します。
- Ubuntu 20.04 VPS(NVMe 2 VPSプランを使用します)
- rootユーザーアカウントへのアクセス(またはroot権限を持つ管理者アカウントへのアクセス)
ステップ1:サーバーにログインしてサーバーOSパッケージを更新する
まず、rootユーザーとしてSSH経由でUbuntu20.04サーバーにログインします。
ssh root@IP_Address -p Port_number
「IP_Address」と「Port_number」をサーバーのそれぞれのIPアドレスとSSHポート番号に置き換える必要があります。また、必要に応じて「root」を管理者アカウントのユーザー名に置き換える必要があります。
インストールを開始する前に、サーバーにインストールされているすべてのUbuntuOSパッケージが更新されていることを確認する必要があります。これを行うには、次のコマンドを実行します。
apt-get update -y apt-get upgrade -y
ステップ2:ApacheWebサーバーをインストールする
開始する前に、ApacheWebサーバーパッケージがシステムにインストールされていることを確認してください。インストールされていない場合は、次のコマンドでインストールできます。
apt-get install apache2 -y
パッケージがインストールされたら、次のコマンドを使用してApacheサービスを開始します。
systemctl start apache2
次に、Webブラウザーを開き、URL http:// your-server-ipを入力します。 ApacheWebサーバーを検証します。すべて問題がなければ、Apacheテストページが表示されます:
ステップ3:mod_rewriteを有効にする
デフォルトでは、mod_rewriteモジュールはApacheパッケージとともにインストールされますが、無効になっています。したがって、最初に有効にする必要があります。
次のコマンドで有効にできます:
a2enmod rewrite
次に、Apacheサービスを再起動して変更を適用します。
次に、次のコマンドを使用してApachemod_rewriteモジュールを確認します。
apache2ctl -M | grep rewrite_module
次の出力が得られるはずです:
rewrite_module (shared)
ステップ4:.htaccessファイルを有効にする
Apacheのメイン設定ファイルで直接書き換えルールを設定できます。ただし、各Webサイト内の.htaccessファイルにルールを記述することをお勧めします。
デフォルトでは、Apacheは.htaccessファイルの使用を許可していません。そのため、デフォルトの仮想ホスト構成ファイルで.htaccessファイルを有効にする必要があります。
これを行うには、Apacheのデフォルトの仮想ホスト構成ファイルを編集します。
nano /etc/apache2/sites-available/000-default.conf
行の前に次の行を追加します:
<Directory /var/www/html> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory>
必ずファイルを保存して閉じてから、Apacheサービスを再起動して変更を適用してください。
systemctl restart apache2
ステップ5:URL書き換えを構成する
URL書き換えがどのように機能するかを理解するために、Apacheドキュメントのルートディレクトリにhome.htmlページを作成します。次に、ページhttp:// your-server-ip / homeにアクセスし、それを実際のページパスhttp://your-server-ip/home.htmlに変換できるようにする基本的なURL書き換えを設定します。
まず、home.htmlページを作成しましょう:
nano /var/www/html/home.html
次のコンテンツを追加します:
<html> <head> <title>Home</title> </head> <body> <h1>Home Page</h1> <h2>This is my home page</h2> </body> </html>
終了したら、ファイルを保存して閉じます。
次に、ウェブサイトのデフォルトのドキュメントルートディレクトリ内に.htaccessファイルを作成して、mod_rewriteをテストします。
nano /var/www/html/.htaccess
まず、次の行を追加して、書き換えエンジンを有効にします。
RewriteEngine on
次に、訪問者がページhttp:// your-server-ip / homeを要求した場合に、訪問者をhome.htmlにリダイレクトする次の書き換えルールを追加します。
RewriteRule ^home$ home.html [NC]
終了したら、ファイルを保存して閉じます。
書き換えルールの構文の簡単な説明を以下に示します。
- ^ これは、サーバーのIPアドレスの後のテキストと一致します。
- $ これは、URLの終わりを示します。
- 自宅 これは実際の文字列のホームと一致します
- home.html これにより、訪問者がアクセスする実際のファイルが定義されます。
- [NC] これにより、ルールの大文字と小文字が区別されなくなります。
これで、 http:// your-server-ip / homeのホームページにアクセスできます。 Webブラウザで。以下に示すように、Apacheはhome.htmlページにリダイレクトします。
もちろん、Linux VPSホスティングサービスのいずれかを使用している場合は、これを行う必要はありません。その場合は、専門のLinux管理者にセットアップを依頼するだけです。 24時間年中無休でご利用いただけます。リクエストはすぐに処理されます。
PS。この投稿が気に入った場合は、左側のボタンを使用してソーシャルネットワーク上の友達と共有するか、下に返信を残してください。ありがとう。