簡體   English   中英

具有多個ServerAlias的Apache2 Dynamic vHost

[英]Apache2 Dynamic vHost with multiple ServerAlias

我正在嘗試建立一個動態的vHost,但遇到了一些麻煩。 它不允許我設置多個ServerAlias。

<VirtualHost *:80>
        ServerAlias *.com
        ServerAdmin michael.ian.curry@gmail.com
        VirtualDocumentRoot /var/www/%1/production/html
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
        LogLevel warn
</VirtualHost>

以上vHost僅適用於' .com'我需要它才能用於'www。 .com'和'* .com'我認為設置ServerAlias會修復它,但它無法正常工作。

ServerAlias *.com www.*.com

如果您有任何見解,請回復

--MichaelCurry

==編輯1 ==

示例redcrusher.com和www.redcrusher.com

==編輯2 ==

下面的代碼也不起作用

ServerAlias www.*.com *.com

弄清楚了!

'www。*。com'必須在'* .com'之前執行這是因為ServerAlias正在設置一個動態域,並且必須在存在“較小”別名之前存在。

示例:'www。*。com','dev。*。com','asdf。*。com'THEN'* .com'

vHost文件[production.conf]:

<VirtualHost *:80>
    ServerAlias www.*.com
    VirtualDocumentRoot /var/www/%2/production/html
    ServerAdmin michael.ian.curry@gmail.com
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    LogLevel warn
</VirtualHost>

<VirtualHost *:80>
    ServerAlias *.com
    VirtualDocumentRoot /var/www/%1/production/html
    ServerAdmin michael.ian.curry@gmail.com
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    LogLevel warn
</VirtualHost>

我希望這可以幫助其他任何有這個問題的人!

--MichaelCurry

你必須這樣使用

ServerAlias www.domain.com domain.com
ServerAlias *.domain.com

如果你想用那種方式你必須遵循秩序

ServerAlias www.*.com *.com 

問題是

VirtualDocumentRoot /var/www/%1/production/html

您使用動態VirtualDocumentRoot意味着

對於redcrusher.com,VirtualDocumentRoot是

/var/www/redcrusher/production/html

對於www.redcrusher.com,VirtualDocumentRoot是

/var/www/www.redcrusher/production/html

我認為拆分ServerAlias分三部分來解決

ServerAlias www.*.com
VirtualDocumentRoot /var/www/%1/production/html/
ServerAlias *.*.com
VirtualDocumentRoot /var/www/%2/production/html/%1 
ServerAlias *.com 
VirtualDocumentRoot /var/www/%1/production/html

我認為應該工作

VirtualDocumentRoot:

redcrusher.com

/var/www/redcrusher/production/html

www.redcrusher.com

/var/www/redcrusher/production/html/

sub.redcrusher.com

/var/www/redcrusher/production/html/sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM