通过 Apache .CONF 文件进行 301 重定向

通过 Apache .CONF 文件进行 301 重定向

我想问你一个问题。是否可以通过 etc/apache/sites-available/...conf 文件在 Apache 中将旧 URL 重定向到新 URL(旧子页面到新子页面)(301 重定向)?

我找到了这段代码。我不确定它是否有效。问题是它不是子页面的重定向。

<VirtualHost *:80>
ServerName www.domain1.com
Redirect 301 /oldlocation http://www.domain2.com/newlocation
</VirtualHost>

我对此不太擅长,因此非常感谢任何建议。

答案1

Apache conf 文件有自己的语法。根据我的经验,需要一些接触和实验才能开始理解它们。您的示例使用了重定向指令,该指令似乎是作为 的一部分实现的mod_alias。您的 Apache 服务器可能启用了 mod_alias,也可能没有启用。要查看启用了哪些 Apache 模块,请参阅此主题

Redirect指令看起来不太灵活。文档说:

重定向指令通过要求客户端在新位置重新获取资源将旧 URL 映射到新 URL。

旧 URL 路径是区分大小写的(% 解码)路径,以斜杠开头。不允许使用相对路径。

新的 URL 可以是以方案和主机名开头的绝对 URL,也可以是以斜杠开头的 URL 路径。在后一种情况下,将添加当前服务器的方案和主机名。

然后任何以 URL-path 开头的请求都会返回一个重定向请求到目标 URL 位置的客户端。匹配到的 URL-path 之外的其他路径信息将附加到目标 URL 中。

你可能会考虑mod_rewrite它更先进、更灵活。它实现了模式匹配行为,这可能会为您提供更强大的方法将旧网址发送到新网址。您的帖子似乎不仅重定向到新域名,还将“旧位置”更改为“新位置”。您可能需要实现某种复杂的重写映射这取决于您如何更改 URL。

相关内容