2013-07-10 71 views
0

我已經搜索了這個,我可能只是坐在關閉,但我似乎無法得到這個重寫工作。我在一個目錄上有一個文件,我想要將它重定向到同一臺服務器上的虛擬主機域。下面是我的條件,規則,虛擬主機mod_rewrite條件和規則

RewriteCond %{HTTP_HOST} ^/main$ [NC] 
RewriteRule ^(.*)$ http://domain.com/$1 [R,l] 

<VirtualHost *:80> 
ServerName www.domain.com 
ServerAlias domain.com 
DocumentRoot /data/live/main 
</VirtualHost> 
+0

在我看來,你只需要重寫規則'^主要/(.*)$的http:// domain.com/$1 [R,L]' – Prix

+0

如果我刪除條件,那麼設置一個無限重定向,如果我保留它,什麼都不會發生,重定向不會生效。 – JMP

+0

根據你的虛擬主機,你的2個域名已經被重定向到/ main,所以我不明白你在這裏要做什麼,但是你不能使用HTTP_HOST作爲文件夾。 – Prix

回答

0

如果你想在olddomain文件夾main重定向到newdomain那麼你可以使用:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www\.olddomain\.com$ [OR,NC] 
RewriteCond %{HTTP_HOST} ^olddomain\.com$ [NC] 
RewriteRule ^main/(.*)$ http://newdomain.com/$1 [R=301,L] 

如果你想重定向的所有內容olddomainnewdomain那麼你可以使用:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www\.olddomain\.com$ [OR,NC] 
RewriteCond %{HTTP_HOST} ^olddomain\.com$ [NC] 
RewriteRule ^(.*)$ http://newdomain.com/$1 [R=301,L] 

如果你想刪除的wwwnewdomain

RewriteCond %{HTTP_HOST} ^www\.newdomain\.com$ [NC] 
RewriteRule ^(.*)$ http://newdomain.com/$1 [R=301,L] 

或者你也可以直接去做就virtualhost這樣的:

<VirtualHost *:80> 
    ServerName newdomain.com 
    Redirect permanent/http://www.newdomain.com 
    DocumentRoot /data/live/main 
</VirtualHost> 
+0

謝謝Prix! – JMP