2008-09-12 90 views
5

我啓用了通配符子域,並通過將它原樣傳遞到我的index.php(例如somecity.domain.com)來動態解析URL。通配符子域例外

現在,我想創建幾個靜態的子域,我可以安裝不同的應用程序,而不與當前的應用程序混合(例如blog.domain.com)。

.htaccess目前寫着:

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

我可以操縱這個.htaccess實現我需要什麼?它可以通過Apache完成嗎?

回答

0

您必須爲這些靜態子域配置apache。 「全部捕捉」網站將被配置爲默認網站,以便其他人能夠抓住其他網站。

0

我不確定我完全理解您需要完成什麼,但在您的Apache配置文件中設置虛擬域可能會有所幫助。您可以將它們映射到安裝有不同應用程序的驅動器上的文件夾。每個虛擬域都被視爲根目錄。我有我的開發環境設置本地我的Windows機器上有很多這樣的:

NameVirtualHost *:80 

# Begin virtual host directives. 

<VirtualHost *:80> 

# myblog.com virtual host. 

ServerAdmin [email protected] 
DocumentRoot "c:/apache_www/myblog.com/www" 
ServerName myblog.com 
ServerAlias *.myblog.com 
ErrorLog "c:/apache_www/myblog.com/logs/log" 
ScriptAlias /cgi-bin/ "c:/apache_www/myblog.com/cgi-bin/" 

<Directory "c:/apache_www/myblog.com/www"> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 

</VirtualHost> 

如果這沒有幫助你在正確的軌道上,然後嘗試研究VirtualHost指令拿出一個解決方案。我發現在.htaccess中試圖做到這一點很麻煩,也很難管理。

1

您的.htaccess沒有任何用處,因爲Apache可能配置了DirectoryIndex index.php。那麼,它確實將domain.com/a移至domain.com/index.php,但我懷疑這是你想要的。

您的通配符虛擬主機可以正常工作,因爲您的配置中可能具有ServerAlias * .domain.com,或者指向您服務器地址的單個虛擬主機和DNS。 (當你有一個虛擬主機,它顯示任何請求,並且第一個列出的虛擬主機是默認主機)

你必須爲靜態域創建新的虛擬主機,保留默認的默認主機一個:)

檢查thesetutorials解釋一切。

0

我不知道你的主機上是否安裝了cpanel,但是我可以通過添加一個新的子域'*',然後將所有流量發送到特定的子域 ex * .domain。 com - > master.domain.com。然後你可以讀出你在master.domain.com上的哪個網址,然後從那裏去。