2016-04-15 172 views
1

我成功重定向舊的子域新 這裏就像是httpd.conf重定向舊子域到新的域別名爲參數,URL

<VirtualHost *:80> 
    ServerName abcd.com 
    ServerAlias *.abcd.com 
    RewriteEngine on 
    Redirect 301/http://pqr.com/ 
</VirtualHost> 

鏈接:mumbai.abcd.com/venue/320089-girgaum-chowpatty被重定向到http://pqr.com/venue/320089-girgaum-chowpatty

而是我想實現:http://pqr.com/mumbai/320089-girgaum-chowpatty

也只是mumbai.abcd.com應該重定向到http://prq.com/mumbai

我想獲取服務器別名並追加到新域的url中。我怎樣才能做到這一點?

+0

mod-rewrite呢? – heximal

回答

0

定義這些重定向的常見位置是在您的web根目錄中的.htaccess而不是httpd.conf,因爲它更加靈活並且不需要您重新啓動apache。

所以我建議你從httpd.conf刪除這些行:

RewriteEngine on 
Redirect 301/http://pqr.com/ 

,並創建一個.htaccess文件在你旁邊根index.php這些內容:

RewriteEngine on 

# Redirect mumbai.abcd.com to prq.com/mumbai 
RewriteCond %{HTTP_HOST} ^mumbai\.abcd\.com$ 
RewriteRule ^$ http://prq.com/mumbai/ [L,R=301] 

# Redirect mumbai.abcd.com/something/123456-foo to prq.com/mumbai/123456-foo 
RewriteCond %{HTTP_HOST} ^mumbai\.abcd\.com$ 
RewriteRule ^(.+)/([^/]+)(/?)$ http://prq.com/mumbai/$2 [L,R=301] 

如果mumbai.abcd.com只是一個例子,你有更多的子域,請試試這個:

RewriteEngine on 

# Redirect *.abcd.com to prq.com/* 
RewriteCond %{HTTP_HOST} ^([^/.]+)\.abcd\.com$ 
RewriteRule ^$ http://prq.com/%1/ [L,R=301] 

# Redirect *.abcd.com/something/123456-foo to prq.com/*/123456-foo 
RewriteCond %{HTTP_HOST} ^([^/.]+)\.abcd\.com$ 
RewriteRule ^(.+)/([^/]+)(/?)$ http://prq.com/%1/$2 [L,R=301] 
相關問題