StackExchange 大家好!超级用户的第一篇帖子。
我在电脑上安装了 Apache 和 PHP,当我在电脑上输入“localhost”时,它运行正常。但我想要的是,当有人输入时,http://<my ip>:<random port number that isn't used>
我希望它重定向到http://localhost/internet/
。如何使用端口转发来实现这一点?我需要在 Apache 中配置什么?
我知道这可能是有关端口转发的问题#87465094,但我在超级用户或互联网的其他地方没有看到针对我的问题的任何解决方案。
修
答案1
首先,你把两个概念混合成了一个想法。
- TCP/IP 端口转发
- HTTP 重定向
你可以通过结合两者来实现你想要的效果,但它们是独立的概念。
HTTP 重定向
所以,我们先暂时忽略端口转发。我们先设置重定向部分。
$ sudo editor /etc/apache2/sites-available/thews_site
这将为新的地点Apache 中的配置。我们可以在其中放置我们站点的全部配置。
我们的虚拟主机
让我们定义您的新 Apache 站点:
NameVirtualHost *:12345
<VirtualHost *:12345>
Redirect / http://www.superuser.com
</VirtualHost>
这将创建一个可以通过任何本地 IP 访问的新站点,但是仅有的在 端口 上12345
。
站点定义本身相当短。它只有 1 个配置条目。重定向到目标站点。
Apache 端口配置
我们还需要告诉 Apache 监听我们的新端口!
$ sudo echo "Listen 12345" >> /etc/apache2/ports.conf
Listen 12345
这会在 的末尾添加该行/etc/apache2/ports.conf
。或者,您也可以使用文本编辑器自行添加。
现在让我们启用该网站
$ sudo a2ensite thews_site
$ sudo invoke-rc.d apache2 restart
这将设置我们之前定义的站点为已启用.第二条命令将重新启动 Apache。
测试
如果您http://localhost:12345
现在进入浏览器,您将被重定向到superuser.com
!
转发端口
现在您可以设置转发端口。您可以在路由器上执行此操作。告诉路由器将您的公共端口转发33333
到您的本地端口12345
。
现在如果有人上网your-public-ip:33333
他们重定向至superuser.com
。
这些示例均适用于基于 Debian 的环境。希望您能够在需要时调整它们。
祝你好运 :)