2014-11-25 175 views
0

我想實現讓子域指向子文件夾,例如 http://{subdomain}.example.com指向http://example.com/{subdomain}而不更改地址欄中的URL。htaccess重寫子域到子文件夾

我現在有這樣的代碼:

RewriteEngine on 
RewriteBase/
RewriteCond %{HTTP_HOST} ^(.*)\.example\.com 
RewriteRule ^(.*)$ http://example.com/%1 [L] 

這似乎是工作,但它改變了我的地址欄藏漢

我knnow有關於這個問題多,但沒有裝我awnser。

回答

1

嘗試使用virtualhosts代替,編輯您的httpd-vhosts.conf和補充一點:

<VirtualHost *:80> 
    ServerAlias *.yourdomain.com #wildcard catch all 
    VirtualDocumentRoot /opt/lampp/htdocs/%1 
    UseCanonicalName Off 
    <Directory "opt/lampp/htdocs"> 
    Options FollowSymLinks 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
    </Directory> 
</VirtualHost> 
+0

這解決了我的問題,謝謝。 – Derp 2014-11-25 12:38:40

1

你可以在你DOCUMENT_ROOT/.htaccess文件中使用此前瞻基於規則:

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTP_HOST} ^.*\.example\.com$ [NC] 
RewriteCond %{HTTP_HOST}:%{REQUEST_URI} ^([^.]+)\.[^:]+:(?!/\1/).*$ 
RewriteRule^%1%{REQUEST_URI} [L] 
+0

這並沒有解決我的問題,它的行爲與我在我的問題中所表達的完全一致。感謝您的幫助,雖然:) – Derp 2014-11-25 12:38:19

+0

這個規則在我的web服務器上工作得很好。如果它正在更改URL,那麼問題可能是您的瀏覽器緩存。 – anubhava 2014-11-25 14:39:32