【问题标题】:apache virtualhost - localhost and development alias/servernameapache virtualhost - 本地主机和开发别名/服务器名
【发布时间】:2019-02-14 22:47:36
【问题描述】:

我正在尝试将我的 apache vhosts 文件配置为具有 localhost/something 主机名和“别名”主机名。我正在使用google api,他们不接受自定义别名作为url,所以我不能让它与我的自定义url一起使用。有什么想法吗?我当前的配置不起作用:

<VirtualHost 127.0.0.1:80>
    ServerName localhost/go
    ServerAlias localhost/go
    DocumentRoot "D:/username/Web/server.dev/go"
</VirtualHost>

<Directory "D:/username/Web/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order Deny,Allow
        Allow from all
        Require all granted
</Directory>

<VirtualHost *:80>
    ServerName api.server.dev
    ServerAlias api.server.dev
    DocumentRoot "D:/username/Web/server.dev/api"
</VirtualHost>

##... more custom urls with subdomains cut out because it's unnecessary

<VirtualHost *:80>
    ServerName adstrck.server.dev
    DocumentRoot "D:/username/Web/server.dev/adstrck"
</VirtualHost>

### ALL OTHERS ###

<VirtualHost *:80>
    ServerName www.server.dev
    ServerAlias server.dev *.server.dev
    DocumentRoot D:/username/Web/server.dev
</VirtualHost>

当我尝试访问 127.0.0.1/go 或 localhost/go 时,出现内部服务器错误。

【问题讨论】:

  • 服务器名是 IP 地址或主机名,而不是路径。见httpd.apache.org/docs/2.4/mod/core.html#servername。您不能将/ 放在主机名中。
  • 抱歉,我在哪里指定主机名?你是说服务器名?
  • 是的,ServerName 必须是 IP 地址或主机名。
  • 好的。这对解决问题没有帮助
  • 是您收到内部服务器错误的问题吗?你能找到错误的文本并在这里分享吗? (几乎可以肯定它会在服务器错误日志中)

标签: apache server virtualhost


【解决方案1】:

根据您的操作系统/浏览器,您可以将开发子域添加到 localhost。例如

<VirtualHost *:80>
  ServerName dev1.localhost
  ## rest of your config
  ## e.g. ServerAlias my.website.on.the.internet.com
  DocumentRoot /var/www/dev1
</VirtualHost>

<VirtualHost *:80>
  ServerName dev2.localhost
  DocumentRoot /var/www/dev2
</VirtualHost>

# Default / catch-all
<VirtualHost *:80>
  DocumentRoot /var/www/html
</VirtualHost>

然后我将浏览器指向 dev1.localhost,它解析为 dev1,同样对于 dev2.localhost 和 localhost 本身解析为默认的 apache 页面。

这解决了我的类似问题。在 Debian WSL 中的 Apache 上进行了测试。在 Windows Chrome 上工作,在 Windows Firefox 上失败。基于此 SO:https://stackoverflow.com/a/35124491

【讨论】:

    【解决方案2】:

    也许你想要的是这样的

    <VirtualHost 127.0.0.1:80>
        ServerName localhost
        ServerAlias server.dev *.server.dev
        DocumentRoot "D:/username/Web/server.dev"
    </VirtualHost>
    
    <Directory "D:/username/Web/server.dev">
            Options Indexes FollowSymLinks MultiViews
            AllowOverride all
            Order Deny,Allow
            Allow from all
            Require all granted
    </Directory>
    

    然后使用http://localhost/go 之类的网址查看该网站。

    【讨论】:

    • 在这里没有帮助。我想要 localhost 和 serveralias,如 server.dev
    • 好的,您的示例中有一个类型,我没有重新检查文档根目录,它缺少逗号。这确实有效,谢谢。 (虽然它只能作为 127.0.0.1 工作,但仍然.. :))
    • 抱歉打错字了。我已经修好了。
    • 我还添加了一个ServerAlias 行,它应该使http://server.dev/go 工作(假设server.dev 解析为127.0.0.1
    猜你喜欢
    • 2021-10-03
    • 2018-04-30
    • 2011-09-22
    • 2010-09-21
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多