从另一台设备Ubuntu通过IP访问本地主机

从另一台设备Ubuntu通过IP访问本地主机

我在 Ubuntu 上使用 xampp 运行本地主机服务器。我想从以下位置访问该服务器另一个设备在同一网络内。为了实现这一点,我使用本地网络中的主机 IP 地址,即192.168.150.250.

当我从另一台设备进入时192.168.150.250,本地主机内容已加载,现在我可以看到 xampp 仪表板。当我尝试进入主机的子目录时。例如192.168.150.250/my-siteurl 立即重定向到localhost/my-site.

奇怪的是并非所有设备都被重定向。例如,我的 iOS 设备没有更改本地主机的 IP 地址,但我的笔记本电脑却更改了。我认为这可能是由防火墙引起的,所以我使用以下命令禁用它: sudo ufw disable 现在它变得非常有趣,因为此设置使我的笔记本电脑资源管理器浏览器能够与我的主机连接,但在同一台笔记本电脑中,Chrome 浏览器仍然将站点从 IP 重定向到本地主机。

我的等/主机文件

127.0.0.1   localhost
127.0.1.1   Ubuntu-X

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

什么会导致这种奇怪的重定向?为什么它可以在某些设备和浏览器上运行,而在其他设备和浏览器上却不能运行?

答案1

当 Web 服务器正在处理动态生成的页面并需要生成引用自身的完全限定 URL 时,它需要知道将什么内容放入 URL 的主机名/地址部分。

如果没有更具体的定义,默认值通常是“localhost”,因为它是安全的选择,并且它适用于仅可在本地访问的快速测试设置。

当您也需要从其他设备访问服务器时,“正确”的方法是确保服务器具有其他设备可解析的名称,然后在ServerName主服务器中的指令中使用该名称和/或 Apache 配置的 VirtualHost 部分。

另一种解决方案是UseCanonicalName Off在 Apache 配置中进行设置:当您这样做时,Apache 将使用客户端最初用于访问服务器的任何名称或 IP 地址来动态创建自引用 URL。

URL 生成也可能发生在基于 PHP 或 Perl 的 Web 应用程序中;在这种情况下,应用程序可能有自己的配置设置。

答案2

问题解决了。

这里的问题是我的浏览器及其缓存文件。清理缓存或严格进入隐私浏览模式后 - 页面显示正确。

答案3

我的网站正在执行此重定向...

也许是因为 my-site 的源代码中的某些内容被配置为使用 localhost 或因为 my-site 内的 .htaccess 。

相关内容