我的网站位于子文件夹下,因此我决定移至域的根级别。
主要挑战是将所有文章保持在与子文件夹相同的路径上,同时将 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 添加入站规则。
云焰
我们可以通过以下步骤使用 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 上托管多个网站。
喜欢阅读这篇文章吗? 与世界分享怎么样?