将子文件夹重定向到 Apache、NGINX、IIS 和 Cloudflare 中的根文件夹

我的网站位于子文件夹下,因此我决定移至域的根级别。

主要挑战是将所有文章保持在与子文件夹相同的路径上,同时将 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 中,我们可以使用重写模块来重写子文件夹中的 URL,并且我们希望它们看起来就像在根目录中一样。 您可以使用以下内容编辑 webroot 文件夹 (%SystemDrive%inetpubwwwroot) 中的 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 添加入站规则。

  修复 Google Voice 我们无法完成您的通话

云焰

我们可以通过以下步骤使用 Cloudflare 实现类似的重定向:

  • 登录您的 Cloudflare 帐户。
  • 单击要在其中添加 URL 转发的域的相应 Cloudflare 帐户。
  • 单击规则应用程序,然后单击页面规则选项卡。
  • 在页面规则下,单击创建页面规则。 为您的域打开“创建页面规则”对话框。
  • 现在,在如果 URL 匹配下,输入应与规则匹配的子文件夹的 URL 模式,例如 https://example.com/subfolder。
  • 接下来,单击添加设置并从下拉菜单中选择转发 URL。
  • 单击选择状态代码并选择 301(永久重定向)或 302(临时重定向)。
  • 输入根域的目标 URL,然后单击保存并部署以完成。

上面的示例是将所有内容从 https://techblik.com.com/blog 重定向到 https://techblik.com.com

包起来

如您所见,将子文件夹重定向或映射到根目录或另一个 URL 是一项常见任务,并且受大多数具有不同选项的流行浏览器支持。

接下来,了解如何在单个 IP 上托管多个网站。

喜欢阅读这篇文章吗? 与世界分享怎么样?