如何为除本地主机之外的所有域都具有动态虚拟主机

科多斯·约翰逊(Kodos Johnson)

背景知识:我一直想设置动态虚拟主机已有一段时间。基本上,我只是希望能够将一个文件夹放入我的虚拟主机文件夹中,并且无需任何其他配置即可使其正常工作。我发现在chrome中,任何子域的.localhost行为都与相同localhost这意味着我可以将.localhost其用作所有项目的TLD,而不必HOSTS为要添加的每个新虚拟主机编辑文件。

我阅读了https://httpd.apache.org/docs/current/vhosts/mass.html上的文档,并弄清了如何基于主机头创建动态虚拟主机。

阅读完该页面和Internet上的其他资源后,我在httpd-vhosts.conf文件中提出了以下配置这将使用之前的部分.localhost来确定文件夹名称。

<VirtualHost *:80>
    ServerAdmin admin@localhost
    
    # Get the server name from the Host header
    UseCanonicalName Off
    
    # Log
    LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
    CustomLog logs/vhost_access.log vcommon
    ErrorLog logs/vhost_error.log
    
    # Match domain name against a folder
    VirtualDocumentRoot "C:/vhosts/%-2+"
    
    <Directory "C:/vhosts/*">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>

因此,通过此设置,我可以在vhosts包含所有html文档文件夹中创建一个新文件夹。因此,例如,如果我创建一个名为的文件夹,则project1可以通过转到来访问该文件夹http://project1.localhost

现在我的主要问题是,我不必总是创建一个新的虚拟主机。我只想创建一个随机的php文件,然后转到即可访问它http://localhost/index.php但是,使用上述配置,仅使用会http://localhost导致错误。可能是因为VirtualDocumentRoot指令中的模式正在使用的子域,localhost而当我只使用时没有子域http://localhost

tl; dr:

根据上述配置,是否有任何方法可以localhost为的子域提供硬编码的虚拟主机,并为子域提供动态的虚拟主机localhost

或者,如何创建一个配置,使我可以拥有此配置:

http://localhost -----------------> C:/vhosts/
http://project1.localhost --------> C:/vhosts/project1
http://project2.localhost --------> C:/vhosts/project2
http://blog.project2.localhost ---> C:/vhosts/project2/blog
Shiji.J

我有一个解决方案,但它只能解决您的部分问题。

<VirtualHost *:80>
   ServerAdmin admin@localhost
   ServerName  localhost
   DocumentRoot "C:/vhosts/"
</VirtualHost>
<VirtualHost *:80>
   ServerAdmin admin@localhost
   ServerName  longnameyoullneveruse.blabla.localhost
   ServerAlias  *.localhost
   DocumentRoot "C:/vhosts/"
   RewriteEngine On
   RewriteMap lowercase int:tolower
   RewriteCond %{HTTP_HOST} ^(.*)\.localhost$
   RewriteRule ^(.*)$ "C:/vhosts/${lowercase:%1}/$1"
   # you should use all lowercase for subfolders' name
</VirtualHost>

这应该满足您的要求的前三行:

http://localhost -----------------> C:/vhosts/
http://project1.localhost --------> C:/vhosts/project1
http://project2.localhost --------> C:/vhosts/project2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

没有真实域名的虚拟主机

来自分类Dev

虚拟主机-所有主机均重定向到WAMP本地主机的“主页”页面

来自分类Dev

具有本地主机的VirtualHost

来自分类Dev

尽管有多个虚拟主机,所有流量都定向到单个目录

来自分类Dev

没有域名的Apache虚拟主机

来自分类Dev

httpd-xampp.conf:如何允许访问除本地主机之外的外部IP?

来自分类Dev

如何使用Alamofire连接本地主机(具有无效证书)?

来自分类Dev

Nginx limit_rate到除本地主机IP之外的所有IP

来自分类Dev

如何为虚拟主机启用mod_rewrite

来自分类Dev

如何在模具本地主机上显示所有Big Commerce API数据

来自分类Dev

本地主机域名和实际域有何不同

来自分类Dev

如何为Apache中的虚拟主机编写重写规则?

来自分类Dev

如何为虚拟主机启用mod_rewrite

来自分类Dev

例如,是否可以为所有虚拟主机(例如mail。*)创建公共子域?

来自分类Dev

Windows防火墙-如何阻止除本地主机以外的所有IP

来自分类Dev

尽管有多个虚拟主机,所有流量都定向到单个目录

来自分类Dev

Apache上具有Intranet主机名的虚拟主机

来自分类Dev

如何为所有本地主机项目设置默认读取权限?

来自分类Dev

如何列出CentOS 7上的所有虚拟主机?(nginx)

来自分类Dev

域转到本地主机

来自分类Dev

具有虚拟主机(Apache2)的Userdir

来自分类Dev

NGINX-如何为所有虚拟主机设置到期标头?

来自分类Dev

将具有自定义端口的本地主机更改为假域

来自分类Dev

为什么即使配置中只有本地主机的虚拟主机,我也可以访问Nginx服务器?

来自分类Dev

具有动态子域的 Apache 虚拟主机

来自分类Dev

如何将所有发布的消息从单独的应用程序记录到虚拟主机

来自分类Dev

apache 虚拟主机 - 本地主机和开发别名/服务器名

来自分类Dev

如何为本地开发启用虚拟主机

来自分类Dev

如何使用 nginx 和 plesk 将所有请求代理到本地主机?

Related 相关文章

  1. 1

    没有真实域名的虚拟主机

  2. 2

    虚拟主机-所有主机均重定向到WAMP本地主机的“主页”页面

  3. 3

    具有本地主机的VirtualHost

  4. 4

    尽管有多个虚拟主机,所有流量都定向到单个目录

  5. 5

    没有域名的Apache虚拟主机

  6. 6

    httpd-xampp.conf:如何允许访问除本地主机之外的外部IP?

  7. 7

    如何使用Alamofire连接本地主机(具有无效证书)?

  8. 8

    Nginx limit_rate到除本地主机IP之外的所有IP

  9. 9

    如何为虚拟主机启用mod_rewrite

  10. 10

    如何在模具本地主机上显示所有Big Commerce API数据

  11. 11

    本地主机域名和实际域有何不同

  12. 12

    如何为Apache中的虚拟主机编写重写规则?

  13. 13

    如何为虚拟主机启用mod_rewrite

  14. 14

    例如,是否可以为所有虚拟主机(例如mail。*)创建公共子域?

  15. 15

    Windows防火墙-如何阻止除本地主机以外的所有IP

  16. 16

    尽管有多个虚拟主机,所有流量都定向到单个目录

  17. 17

    Apache上具有Intranet主机名的虚拟主机

  18. 18

    如何为所有本地主机项目设置默认读取权限?

  19. 19

    如何列出CentOS 7上的所有虚拟主机?(nginx)

  20. 20

    域转到本地主机

  21. 21

    具有虚拟主机(Apache2)的Userdir

  22. 22

    NGINX-如何为所有虚拟主机设置到期标头?

  23. 23

    将具有自定义端口的本地主机更改为假域

  24. 24

    为什么即使配置中只有本地主机的虚拟主机,我也可以访问Nginx服务器?

  25. 25

    具有动态子域的 Apache 虚拟主机

  26. 26

    如何将所有发布的消息从单独的应用程序记录到虚拟主机

  27. 27

    apache 虚拟主机 - 本地主机和开发别名/服务器名

  28. 28

    如何为本地开发启用虚拟主机

  29. 29

    如何使用 nginx 和 plesk 将所有请求代理到本地主机?

热门标签

归档