サイトをサブフォルダーの下に置いていたので、ドメインのルート レベルに移動することにしました。
主な課題は、URL をドメインのルートまたは別の場所にリダイレクトしながら、すべての記事をサブフォルダーと同じパスに保持することでした。
アパッチ
Apache HTTP サーバーは
RewriteCond
をサポートします。この変更を行うには、
.htaccess
または
httpd.conf
ファイルを編集し、以下の行を追加します。
RewriteEngine on
RewriteBase /
RewriteRule ^subfolder/(.*)$ /$1 [R=301,NC,L]
ここではベースとして
/
を使用しており、
RewriteRule
は正規表現を使用してサブフォルダー内のすべての URL に対して機能します。
R=301
永続的なリダイレクトを指定します。
Nginx
/etc/nginx/nginx.conf
または
/etc/nginx/conf.d/default.conf
の
rewrite
ディレクティブを使用して、Nginx Web サーバーでも同様のリダイレクトを実現できます。
location ^~ /subfolder {
rewrite ^/subfolder(.*)$ $1 last;
}
ここで
^~
修飾子を使用すると、将来正規表現の場所を追加した場合でも、このプレフィックスの場所が引き続き優先されるようになります。
IIS
IIS では、Rewrite モジュールを使用して、サブフォルダー内にある URL を書き換えて、URL がルート内にあるかのように表示できます。 Webroot フォルダー (
%SystemDrive%\inetpub\wwwroot
) 内の
web.config
ファイルを次のように編集できます。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Root_URL_Rewrite" stopProcessing="true">
<match url="^(.*)" />
<action type="Rewrite" url="/subfolder/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
あるいは、IIS マネージャーの URL 書き換え UI をさらに使用して、受信ルールを追加することもできます。
クラウドフレア
以下の手順に従って、Cloudflare を使用して同様のリダイレクトを実現できます。
- Cloudflareアカウントにログインします。
- URL 転送を追加するドメインの適切な Cloudflare アカウントをクリックします。
- 「ルール」アプリをクリックし、「ページルール」タブをクリックします。
- [ページ ルール] で、[ページ ルールの作成] をクリックします。ドメインの [ページ ルールの作成] ダイアログが開きます。
-
ここで、「URL が一致する場合」に、ルールに一致するサブフォルダーの URL パターン (例:
https://example.com/subfolder) を入力します。 - 次に、[設定の追加] をクリックし、ドロップダウン メニューから [転送 URL] を選択します。
- [ステータス コードの選択] をクリックし、301 (永続的リダイレクト) または 302 (一時的リダイレクト) を選択します。
- ルート ドメインの宛先 URL を入力し、[保存して展開] をクリックして完了します。
上記の例は、https://.com/blog からすべてを https://.com にリダイレクトします。
まとめ
ご覧のとおり、サブフォルダーをルートまたは別の URL にリダイレクトまたはマッピングすることは一般的なタスクであり、さまざまなオプションを備えたほとんどの一般的なブラウザーでサポートされています。
次に、単一の IP で複数の Web サイトをホストする方法を確認します。






![2021 年に Raspberry Pi Web サーバーをセットアップする方法 [ガイド]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)




