【问题标题】:Rewriting specific host to directories on localhost将特定主机重写到本地主机上的目录
【发布时间】:2013-03-20 14:11:52
【问题描述】:

我目前正在尝试将本地配置的域重定向到其目录。使用 htaccess 实现此目的的最佳方法是什么?

目前'localhost'重定向到/Library/WebServer/Documents/(mac OSX),我想在这个目录中创建一个htaccess文件,它将所有域引导到它的目录。

我正在寻找的示例 htaccess 代码:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?example.com/$ 
RewriteRule ^(.*)$ /Library/WebServer/Documents/example.com/$1 [L]

我希望有人可以帮助我,认为有一个简单的解决方法!

亲切的问候,

【问题讨论】:

    标签: apache .htaccess


    【解决方案1】:

    单独使用.htaccess 是不可能的。您需要访问主服务器配置文件或至少修改相应的虚拟主机部分。

    如果你可以修改主配置文件,你可以添加任意数量的virtual hosts

    如果只允许您调整虚拟主机,则必须向虚拟主机添加与域一样多的 ServerAlias 条目。

    然后就可以添加各个域的重写规则了

    RewriteEngine On
    
    # prevent endless loop
    RewriteCond %{ENV:REDIRECT_STATUS} .
    RewriteRule ^ - [L]
    
    RewriteCond %{HTTP_HOST} ^(www\.)?example\.com/$ 
    RewriteRule ^.*$ /Library/WebServer/Documents/example.com/$0 [L]
    
    RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com/$ 
    RewriteRule ^.*$ /Library/WebServer/Documents/domain.com/$0 [L]
    

    【讨论】:

      【解决方案2】:

      试试这个

      # get the server name from the Host: header
      UseCanonicalName Off
      
      # include the server name in the filenames used to satisfy requests
      VirtualDocumentRoot /var/www/vhosts/%0/httpdocs
      
      <Location /var/www/vhosts>
          AllowOverride All
          Options +FollowSymLinks
      </Location>
      

      那么,你可以试试这些例子:

      example.com 将显示 /var/www/vhosts/example.com/httpdocs

      example2.com 将显示 /var/www/vhosts/example2.com/httpdocs

      记得将域添加到您的主机文件中。

      Source

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-29
        • 1970-01-01
        • 2018-06-03
        • 2017-11-24
        • 1970-01-01
        • 2015-08-16
        • 1970-01-01
        相关资源
        最近更新 更多