【24届毕业生】新手尝试设置重定向【Apache】【AWS】

您好,我是Inu,一名拥有文科背景的实习基础设施工程师,将于2024年毕业。
最近,我一直希望我的大脑运转速度能比我的眼睛快。

这一次,我想以原始的、物理的、恋物癖的方式来分享我这个完全的初学者所学到的关于重定向设置的知识。

什么是重定向?

首先,我们来看看维基百科的解释。

重定向(转发)功能是将文章链接重定向到另一个页面。这样的页面称为重定向页面(转发页面)。

引用:https://ja.wikipedia.org/wiki/Wikipedia:%E3%83%E3%82%AF%E3%83%88#:~:文本=%E3%83%AA%E3%83%80%E3%82%A4%E3%83%AC%E3%82%AF%E3%83% 88%EF%BC%88%E8%BB%A2%E9%80%81%EF%BC%89%E3%81%A8%E3%81%AF%E3%80%81,%E3%81%99%E3 %82%8B%E6%A9%9F%E8%83%BD%E3%81%AE%E3%81%93%E3%81%A8%E3%81%A7%E3%81%99%E3%80%82 (截至2024年10月7日)

正是如此。

你是否曾经在访问旧主页时被自动重定向到新页面?

这就是 “重定向”的

我们来尝试设置重定向。

如何设置重定向?

所以,这次“hogehoge.info”重定向到“www.hogehoge.info”服务器端配置AWS ALB 我想向大家展示

验证环境

服务器端配置方法,我们使用了以下测试环境进行设置。

Virtualbox:版本 7.0.20

Vagrant:版本 2.4.1

以下是如何使用 Vagrant 设置测试环境:

使用 Vagrant 构建您自己的测试环境

Vagrant box:AlmaLinux 9

Apache:版本 2.4.57

步骤 1:在服务器端进行设置

如果要在服务器端进行设置,请尝试向虚拟主机的配置文件添加别名,并向虚拟主机的“.htaccess”文件中添加一行。

① 向虚拟主机配置文件添加别名

首先,使用以下命令检查虚拟主机列表。

httpd -S

执行结果显示,该服务器包含“www.hogehoge.info”和“nova-prod.byd-edu.info”。

■执行结果 VirtualHost 配置:*:80 是一个 NameVirtualHost 默认服务器 www.hogehoge.info (/etc/httpd/conf.d/hogehoge.conf:1) 端口 80 namevhost www.hogehoge.info (/etc/httpd/conf.d/hogehoge.conf:1) 端口 80 namevhost nova-prod.byd-edu.info (/etc/httpd/conf.d/nova-prod.byd-edu.info.conf:1) ServerRoot: "/etc/httpd" ~省略~

现在,让我们使用 less 命令来查看“www.hogehoge.info”的配置文件。

删除 /etc/httpd/conf.d/hogehoge.conf

设置保持默认,因此我们将在此处添加“ServerAlias”。

■执行结果<VirtualHost *:80>服务器名称 www.hogehoge.info 文档根目录 "/var/www/vhosts/hogehoge.info/public_html" 目录索引 index.php index.html index.xml<Directory /var/www/vhosts/hogehoge.info/public_html > Options FollowSymLinks AllowOverride all</Directory>自定义日志“/var/log/httpd/hogehoge.info-access_log” 合并错误日志“/var/log/httpd/hogehoge.info-error_log”</VirtualHost>

使用 vi 命令编辑“www.hogehoge.info”的配置文件。

vi /etc/httpd/conf.d/hogehoge.conf

进入编辑模式,然后在 ServerName 下添加“ServerAlias”。

<VirtualHost *:80>服务器名称 www.hogehoge.info 服务器别名 hogehoge.info ←这里! 文档根目录 "/var/www/vhosts/hogehoge.info/public_html" 目录索引 index.php index.html index.xml<Directory /var/www/vhosts/hogehoge.info/public_html > Options FollowSymLinks AllowOverride all</Directory>自定义日志“/var/log/httpd/hogehoge.info-access_log” 合并错误日志“/var/log/httpd/hogehoge.info-error_log”</VirtualHost>

添加条目后,按 Esc 键退出编辑模式,然后按 :wq 保存并退出。
使用 cat 命令确认“ServerAlias”已正确添加后,即可进行下一步。

② 在虚拟主机的“.htaccess”文件中写入

接下来,我们来创建“.htaccess”文件。
首先,导航到“www.hogehoge.info”的文档根目录。

cd /var/www/vhosts/hogehoge.info/public_html

迁移完成后,public_html目录下创建一个“.htaccess”文件

vi .htaccess

打开 vi 编辑器后,会出现一个空白的编辑界面,请添加以下代码。

RewriteEngine on RewriteCond %{HTTP_HOST} ^hogehoge\.info [NC] RewriteRule ^(.*)$ http://www.hogehoge.info/$1 [L,R=301]

让我们来看看这些术语分别是什么意思。

RewriteEngine 启用 URL 重写
RewriteCond %{HTTP_HOST} ^hogehoge\.info [NC] 定义条件,使表示 URL 主机名的变量 = hogehoge.info,无论大小写。
RewriteRule ^(.*)$ http://www.hogehoge.info/$1 [L,R=301] 定义一条规则,将满足上述条件的请求重写到 www.hogehoge.info,并以状态码 301 重定向它们。

嗯,这有点难。
这篇文章很容易理解。

URL规范化(使用mod_rewrite进行重定向)

编辑完成后,使用以下命令重新加载配置:

systemctl reload httpd

最后,尝试实际访问“hogehoge.info”,看看它是否会重定向到“www.hogehoge.info”。

以管理员权限打开记事本,记得在“C:\windows\system32\drivers\etc\hosts”文件的末尾添加你的本地 IP 地址和主机名,然后保存!
否则,访问“hogehoge.info”时将不会显示任何内容!操作方法如下:

访问之后……

■ 访问日志 192.168.33.1 - - [2024年10月14日 08:22:03 +0000] "GET / HTTP/1.1" 301 233 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"

我确认 Chrome 确实重定向到了“www.hogehoge.info”,访问日志也显示,对“hogehoge.info”的请求返回了 301 代码。

第二部分:我们来尝试使用 AWS ALB

在 AWS 环境中,似乎可以在数据到达服务器之前,在负载均衡器端设置重定向。

首先,打开 AWS 控制台,然后使用以下路径导航到设置屏幕。

EC2 > 负载均衡器 > 目标 ALB > 目标端口 > 在“监听器规则”部分,单击“添加规则”

完成迁移后,请按步骤 1 至 5 填写必填字段。

步骤 1:添加规则

这是规则名称和标签的设置界面。两者都可以留空。

步骤 2:定义规则条件

从“添加条件”中选择“规则条件类型”。此项用于设置转换源的访问权限。

主机头 “https://hogehoge.info/test.txt这对应于
,所以这次我们将输入源主机“hogehoge.info”
小路 “https://hogehoge.info/test.txt如果”部分。
重定向的源路径是特定路径,则需要指定该路径。
HTTP 请求方法 您可以指定 GET、POST 等方法。
源IP 您可以指定请求来自哪个 IP 地址。

步骤 3:定义规则操作

接下来,我们将设置转换目的地。

操作路由 选择“重定向到 URL”
重定向到 URL 选择 URI 部分
协议 选择任意协议。
在本本地环境测试中,我们将选择“HTTP”。
港口 选择任意端口。
在本例中,由于我们选择了“HTTP”协议,因此请输入“80”。
使用自定义主机、路径、查询……. 我会检查一下
主持人 “https://hogehoge.info/test.txt部分
目标“www.hogehoge.info输入
小路 “https://hogehoge.info/test.txt对应于
在这种情况下,我们希望将其应用于“www.hogehoge.info”下的所有路径,因此/*我们输入
查询(可选) 这指的是查询参数,特别是
“https://beyondjapan.com/?s=test&post_type=pt-blog这部分
。如有必要,请包含它们。
状态码 一般建议对永久重定向使用 301 重定向,对因维护等原因导致的临时重定向使用 302 重定向。
在这种情况下,假设是永久重定向,我们将选择“301 - 永久重定向”。

步骤 4:设置规则优先级

此设置决定重定向设置的优先级。优先级是一个数值,用于指定当存在多个重定向设置时,哪个重定向设置优先。
数值越小,优先级越高,0 为最高优先级。

由于这次我们只设置一个值,所以“1”就可以了。

设置时需要注意的事项:

除了上述设置之外,如果您想将“hogehoge.info”中的特定路径(例如,hogehoge.info/test.txt)重定向到另一个页面,请将此设置的优先级调高。

条件“hogehoge.info/test.txt”包含在现有条件“hogehoge.info/*”中,该条件使用了通配符,因此如果优先级不正确,重定向将无法正常工作。

优先级 1:“hogehoge.info/test.txt” → “某个地方”
优先级 2:“hogehoge.info/*” → “www.hogehoge.info/*”

让我们一起努力实现它!

步骤 5:回顾和创建

请检查您输入的信息是否正确,如果没有问题,请点击“创建”。

检查一下是否有效,如果确认重定向成功,那就没问题了!

同样,请记住以管理员权限打开记事本,将您的本地 IP 地址和主机名添加到“C:\windows\system32\drivers\etc\hosts”文件的末尾,然后保存!
顺便说一下,这次您还需要添加 ALB 的公网 IP 地址,所以我也会分享一下如何操作。

① 进入用于验证的 ALB 的详细信息屏幕,复制“DNS 名称”。

② 打开你的 WSL 或 Ubuntu,使用 dig 命令检查 IP 地址。

挖 hoge-test-alb-12345678.ap-northeast-1.elb.amazonaws.com
■执行结果;;答案部分:hoge-test-alb-12345678.ap-northeast-1.elb.amazonaws.com。60 在 12.345.678.90 ←此!

③ 复制 ANSWER SECTION 中显示的 IP 地址,并将其粘贴到 hosts 文件的底部,然后保存。

概括

以上是初学者设置重定向的方法。

我希望这篇文章能对初学者有所帮助……(祈祷)

如果您觉得这篇文章对您有帮助,请点个“赞”!
6
加载中...
6票,平均分:1.00/16
897
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者