将特定主机重写到localhost上的目录

时间:2013-03-20 14:11:52

标签: apache .htaccess

我目前正在尝试将我的本地配置域重定向到其目录。使用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]

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

亲切的问候,

2 个答案:

答案 0 :(得分: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]

答案 1 :(得分:0)

试试这个

# 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