2011-08-25 54 views
0

在丙烯酸DNS代理的幫助下,以任何具有頂層域「l」(example.l)的地址重定向到本地主機的方式設置我的本地主機。但我想打開基於二級域名的特定文件夾(example.l - > localhost/example) 我認爲解決方案可能位於htaccess文件中,該文件位於根目錄(C:\ wamp \ www \ in my案件)。將第三級和第二級域重定向到本地主機上的目錄

我發現子域的一些代碼,改變了它一點,所以它會在我的情況下工作:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\.l 
RewriteCond %{HTTP_HOST} ^([^.]+)\.l 
RewriteRule ^$ /$1 [L] 

它適用於二級域名,但沒有透明(example.l example.l變爲/例)和第三級域名被忽略(但我認爲可以通過目標目錄中的另一個htaccess文件修復)。 我在正則表達式中總是noob,所以我無法正常工作。

任何想法?

順便說一句,如果我添加域到vshost文件時,它工作正常,但迴避需要做的是爲每一個域名是有點什麼,我試圖完成的點...

回答

1

你想要做的是什麼使用Named Virtual Hosts,而不是mod_rewrite

這是一個稍微複雜的問題,因爲它取決於您的系統配置方式,操作系統和您正在運行的Apache版本。

但一般情況下,它基本上需要啓用您的http.conf命名的虛擬主機,然後添加指向每個主機不同的目錄下具體的配置,它看起來像這樣:

# Enabled Named Virtual Hosts 
NameVirtualHost *:80 

# Set up one host 
<VirtualHost *:80> 
    ServerName example.l 
    ServerAlias *.example.l 
    DocumentRoot "C:/wamp/www/example" 
</VirtualHost> 

# Add another 
<VirtualHost *:80> 
    ServerName other.l 
    DocumentRoot "C:/wamp/www/other" 
</VirtualHost> 

在生產系統中,比如在Linux操作系統上運行的應用程序,您通常會爲每個域維護一個單獨的.conf以使其更容易。

編輯:我不是Windows用戶,所以我不是100%正確的目錄分隔符格式。我改變它以匹配我在網上找到的例子。

+0

感謝您的回答,但正如我寫的 - 我做了你的建議和它的工作原理,但它正是我想避免的 - 需要在conf文件中設置每個新域... – Noximo

相關問題