34

我的问题可能很愚蠢,但老实说,我搜索了很多并取得了成功,但并不完整。

我在 Windows 8 中使用 xampp。

我的主机文件如下所示。

    127.0.0.1   localhost
    127.0.0.1   www.mysite.com

我的 httpd-vhosts.config 如下所示。

    NameVirtualHost 127.0.0.1
    <VirtualHost 127.0.0.1>
        DocumentRoot "C:/xampp/htdocs"
        ServerName localhost
    </VirtualHost>
    <VirtualHost 127.0.0.1>
        ServerName www.mysite.com
        ServerAlias mysite.com
        DocumentRoot "C:/xampp/htdocs/mysite"
    </VirtualHost>

这非常适合http。但我启用了 ssl。

当我输入http://localhostorhttps://localhost时,两者都可以正常工作。

当我输入http://mysite.com它的工作时,

当我键入时https://mysite.com,它被重定向为https://mysite.com/xampp/并显示 xampp 的默认欢迎页面。

我尝试了以下事情。

1) 我没有使用 127.0.0.1,而是尝试在 httpd-vhosts.conf 中使用 *:80 但结果是一样的。

2)我没有使用 127.0.0.1,而是尝试在 httpd-vhosts.conf 中使用 *:443 但是在重新启动时 apache 无法再次启动。

请让我知道如何通过域名而不是使用 https 或 http 的 localhost 访问我的网站。

4

6 回答 6

24

我尝试了很多东西,但我想我错过了基本的编辑。

现在一切正常。

现在主机文件仍然与问题中提到的相同。我没有对其进行任何更改。

我更改了 httpd-vhosts.config 中的端口,如下所示。

NameVirtualHost *
    <VirtualHost *>
        DocumentRoot "C:/xampp/htdocs"
        ServerName localhost
    </VirtualHost>
    <VirtualHost *>
        ServerName www.mysite.com
        ServerAlias mysite.com
        DocumentRoot "C:/xampp/htdocs/mysite"
    </VirtualHost>

另外我错过的步骤是在与 httpd-vhosts.config 相同的文件夹中编辑 httpd-ssl.config 文件。

我刚刚在 http-ssl.config 文件的最后一行之前添加了以下行,即 < /IfModule>

<VirtualHost _default_:443> 
    DocumentRoot "C:/xampp/htdocs/mysite" 
    ServerName www.mysite.com:443 
    ServerAlias mysite.com:443  
    SSLEngine on 
    SSLCertificateFile "conf/ssl.crt/server.crt" 
    SSLCertificateKeyFile "conf/ssl.key/server.key" 
</VirtualHost> 

感谢所有朋友在这方面为我提供了很多帮助,如果没有您的链接,我将永远无法发现我需要再编辑一个文件。

于 2013-04-26T06:28:30.450 回答
13

让我一步一步地为其他人解释。

1. 将您的自定义域名映射到 HOSTS 文件中的 localhost。

打开主机文件并添加以下行。

127.0.0.1 www.example.com

2.告诉 XAMPP 您的自定义域。

将以下内容添加到httpd-vhosts.conf

<VirtualHost *>
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot "C:/xampp/htdocs/example"
</VirtualHost>

如果您的本地主机有端口,则将其添加为<VirtualHost *:80>

重新启动 apache,现在您可以在浏览器中访问http://example.com 。

3. 如果要访问https://example.com

将以下行添加到httpd-vhosts.conf

<VirtualHost *:443>
    DocumentRoot "C:/xampp/htdocs/example"
    ServerName www.example.com
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
    <Directory "C:/xampp/htdocs/example">
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

于 2016-07-13T10:16:11.137 回答
1

我从多个自定义域开始。请参阅下面的新代码:

注意:WordPress 去掉了反斜杠,所以下面我用正斜杠替换了它们。无论哪种方式,我都相信工作。

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/Users/Austin Passy/Documents/InMotion Hosting/frostywebdev.com/html"
    ServerName frostyweb.dev
    <Directory "C:/Users/Austin Passy/Documents/InMotion Hosting/frostywebdev.com/html">
    Options Indexes FollowSymLinks ExecCGI Includes
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/eateryengine"
    ServerName eateryengine.dev
    <Directory "C:/xampp/htdocs/eateryengine">
    Options Indexes FollowSymLinks ExecCGI Includes
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
于 2014-06-04T02:59:10.540 回答
1

我对 apache 不太熟悉,但可能没有指定端口默认为 :80 并且添加它会神奇地解决所有问题?

<VirtualHost 127.0.0.1:443>
    ServerName www.mysite.com
    ServerAlias mysite.com
    DocumentRoot "C:/xampp/htdocs/mysite"
</VirtualHost>
于 2013-04-26T05:20:42.397 回答
1

我已经在谷歌上搜索了好几个小时,试图弄清楚为什么最新的 XAMPP 版本在页面生成时间上设置了 1200 毫秒……我认为这可能是我的代码正在使用一些非常复杂的类系统……这个线程指出了整个 localhost <> 127.0.0.1

我在 Windows 7 上,我没想过使用 CMD 来“ping localhost”

结果是 "::1:" 而不是 127.0.0.1

快速编辑 windows/system32/drivers/etc/host 文件后取消注释掉该行

127.0.0.0 本地主机

我的页面时间恢复正常。可能是其他人最近遇到了这个问题,并且看到这个线程在谷歌中排名第一,那么祝你好运!

于 2013-12-01T16:32:18.613 回答
-1

我使用自己的域(以 .lc 结尾)在 localhost 上开发 Web 应用程序。我将描述动态 .lc 域和开发环境的简单解决方案,它可以在不依赖 Internet 连接的情况下工作。

我也在我的博客上写过它:http: //www.michalseidler.com/development/localhost-development-enviromet-for-php/

对于此示例,我尝试使用 Wamp Server 描述本地动态域 *.lc 的配置。我将我的项目存储在 C:\wamp\www\projects\projectname\ 中,并且我使用动态映射 projectname.lc。这意味着我可以使用域 [项目目录名称].lc 访问每个项目目录

步骤 1 – 本地 WAMP 服务器的配置

首先,您需要将 *.lc 域的配置放入 httpd.conf:

<VirtualHost 127.0.0.1>
ServerName lc
ServerAlias *.lc
DocumentRoot "C:\wamp\www\projects"
</VirtualHost>;

您需要将 .htaccess 文件插入项目目录(在我的示例中为:C:\wamp\www\projects),此配置将 *.ls 域映射到项目目录。例如:如果您在目录“myapp”中有资源,您可以使用 www.myapp.lc 在浏览器中打开它。

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

RewriteCond %{HTTP_HOST} ^www\.([^.]+)\.([^.]+)\.([^\.]*)$ [NC]
RewriteRule ^(.*)$ http://%1.%2.%3/$1 [L,R=301]

RewriteCond %{REQUEST_URI} !^projects/
RewriteCond %{REQUEST_URI} !^/projects/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteRule (.*) %3/$1 [DPI] 

此更改后重新启动 Wamp 服务器

步骤 2 – 本地 DNS 服务器的配置

因为我们不能在 Windows 主机文件中使用 *.lc,所以我们需要安装本地 DNS 服务器。我选择 Acrylic DNS Server 是因为它的配置非常简单。

安装后找到 AcrylicHosts 文件 (C:\Program Files (x86)\Acrylic DNS Proxy) 并插入新行:

127.0.0.1 *.lc

这只是我们需要的 DNS 配置,所以重新启动 Acrylic DNS 服务。

步骤 3 – 网络适配器的配置

最后一步是安装新的假网络适配器并分配 DNS 服务器: 1.单击开始菜单。2.搜索“cmd”。3.右键单击“cmd”并选择“以管理员身份运行” 4.输入“hdwwiz.exe” 5.在“欢迎使用添加硬件向导”中,单击下一步。6.选择“安装我从列表中手动选择的硬件(高级)”,然后单击下一步。7.向下滚动并选择“网络适配器”,然后单击下一步。8.在制造商“Microsoft”下选择,然后在网络适配器“Microsoft Loopback Adapter”下选择,然后单击下一步。

在下一步中,您必须更改新创建的适配器的 TCP/IP 设置: 1. 使用管理员帐户登录到计算机。2. 单击开始,指向控制面板,然后单击网络连接。3.右键单击环回连接,然后单击属性。4.在此连接使用以下项目框中,单击 Internet 协议 (TCP/IP),然后单击属性。出现 Internet 协议 (TCP/IP) 属性对话框。

IP addess: 192.168.1.1
Subnet mask: 255.255.255.0
Default Gateway: empty

Prefered DNS server: 127.0.0.1

现在关闭所有对话框并完成!您可以尝试打开 [您的项目名称].lc

于 2015-07-27T14:25:48.080 回答