如何使用iPhone访问我的PC本地主机和internet?

如何使用iPhone访问我的PC本地主机和internet?,iphone,apache,windows-10,Iphone,Apache,Windows 10,我的Windows 10 pc已安装xampp。我将其用于多个项目,因此我的文件夹结构类似于: xampp |-htdocs #dummy localhost |-htdocs-projecta |-htdocs-projectb |-etc 我已经设置了我的httpvhosts.conf文件和hosts文件,这样当我转到projecta.dev或projectb.dev时,apache就会返回正确的网站 我已将电脑设置为wifi热点,并将iphone连接到热点。我已经在iphone上配置了w

我的Windows 10 pc已安装xampp。我将其用于多个项目,因此我的文件夹结构类似于:

xampp
|-htdocs #dummy localhost
|-htdocs-projecta
|-htdocs-projectb
|-etc
我已经设置了我的
httpvhosts.conf
文件和
hosts
文件,这样当我转到
projecta.dev
projectb.dev
时,apache就会返回正确的网站

我已将电脑设置为wifi热点,并将iphone连接到热点。我已经在iphone上配置了wifi连接,这样我的电脑就可以充当代理了。这意味着当我在手机上转到
projecta.dev
时,我可以从电脑上看到网站

这就是我遇到问题的地方——使用这种方法,我似乎只能看到我计算机上的网站(即我无法从其他网站下载资源,如jQuery或Analytics)

如何设置我的PC和iPhone,以便我可以从iPhone访问PC上的本地项目域,并定期访问internet以下载其他脚本

[编辑] 更多信息:

我的vhosts文件的配置如下:

<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs\"
    ServerName localhost
        <Directory C:\xampp\htdocs>
                AllowOverride All
                Require all granted
        </Directory>
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs-projecta\public_html"
    ServerName projecta.dev
        <Directory C:\xampp\htdocs-projecta>
                AllowOverride All
                Require all granted
        </Directory>
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs-projectb"
    ServerName projectb.dev
        <Directory C:\xampp\htdocs-projectb>
                AllowOverride All
                Require all granted
        </Directory>
</VirtualHost>
...
当我从手机访问
project-a.dev
时,它会加载不包括第三方资源(如谷歌字体和jQuery)的网站。当我去谷歌时,它会加载我的本地主机,其他页面/文件夹返回404。这让我觉得问题出在vhosts配置上——它找不到匹配的服务器名称,正在加载默认的localhost

所以我把
改为
,但没有效果。我还添加了
listenprojecta.dev:80
,但这也有效果


如何设置vhosts以忽略除vhosts文件/服务器名中的请求以外的所有请求?

首先,您可以在连接到wifi热点后检查您的iPhone是否能够连接到任何网站,例如

如果是,但仍然无法连接,您可以在笔记本电脑上尝试检查jquery脚本的链接是否正确。如果您的手机存在相同的问题,则检查元素并检查脚本是否成功下载。有时,我们可能会错误地放置jquery链接。

如果一切正常,但iPhone仍然无法下载,我认为您可以下载这些jquery脚本,并与您的项目一起放入htdoc文件夹。其实这样可以节省很多时间


希望这能帮助你

我已将iphone设置为与我的pc建立代理连接,以处理所有请求

我要做的是在我的电脑上创建一个.pac文件,这样,在每个请求的基础上,它会告诉我的iphone是作为代理访问我的电脑还是直接连接到资源

这是我的proxyfile.pac:

function FindProxyForURL(url, host)
{
    //localhost projects
    if (dnsDomainIs(host, "projecta.dev")) return "PROXY 192.168.1.87:81";
    if (dnsDomainIs(host, "projectb.dev")) return "PROXY 192.168.1.87:82";
    //... etc

    //everything else
    return "DIRECT";
}
如您所见,我现在告诉我的iphone使用我的计算机将特定URL代理到同一ip上的不同端口。如果我将其设置为端口80,那么他们都将访问我的默认本地主机,而不是他们应该加载的网站。这意味着我也要更新我的vhosts文件:

<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs-projecta\public_html"
    ServerName projecta.dev
        <Directory C:\xampp\htdocs-projecta>
                AllowOverride All
                Require all granted
        </Directory>
</VirtualHost>
Listen 81
<VirtualHost *:81>
    DocumentRoot "C:\xampp\htdocs-projecta\public_html"
    ServerName projecta.dev
        <Directory C:\xampp\htdocs-projecta>
                AllowOverride All
                Require all granted
        </Directory>
</VirtualHost>

DocumentRoot“C:\xampp\htdocs projecta\public\u html”
ServerName projecta.dev
允许超越所有
要求所有授权
听81
DocumentRoot“C:\xampp\htdocs projecta\public\u html”
ServerName projecta.dev
允许超越所有
要求所有授权
对于每个项目,我复制/粘贴
VirtualHost
块,更改端口并添加
Listen
命令


通过此设置,我现在可以在pc和iphone上访问http://projecta.dev,以及一般的互联网(例如
http://google.com
),以便我可以根据需要下载外部资源(如jQuery、谷歌字体等)。

您好。当我在手机上关闭proxy时,我可以连接到Google、jQuery等,但不能连接到我的电脑。当我打开proxy时,我可以访问我的电脑,但不能访问Google等。我宁愿不自己托管资源。我想这就是proxy的问题。为什么您需要设置代理让您的手机连接?实际上,您可以使用相应的端口号通过IP地址直接连接。我已经设置了apache vhosts以连接
http://projecta.dev/
到my
projecta
文件夹,该文件夹不是默认的本地主机文件夹。这同样适用于
projectb.dev
等等。
<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs-projecta\public_html"
    ServerName projecta.dev
        <Directory C:\xampp\htdocs-projecta>
                AllowOverride All
                Require all granted
        </Directory>
</VirtualHost>
Listen 81
<VirtualHost *:81>
    DocumentRoot "C:\xampp\htdocs-projecta\public_html"
    ServerName projecta.dev
        <Directory C:\xampp\htdocs-projecta>
                AllowOverride All
                Require all granted
        </Directory>
</VirtualHost>