2013-08-25 81 views
1

我的站點設置是這樣301重定向到子站點上的附加域子目錄

**Main Domain** - domain.com 

**Addon domain** - addon.com 

**blog sub domain** - blog.addon.com 

**blog sub page** - blog.addon.com/post/54546/url-slug-here 

現在addon.com是在HostGator的一個附加域共享帳戶,根域是domain.com

我想讓blog.addon.com 301重定向到addon.com/directory/blog

對於我曾嘗試

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^blog.addon.com$ [NC] 
RewriteRule ^/?$ "http://addon\.com/directory/blog/" [R=301,L] 

不幸的是,上面的代碼根本不起作用。

我也試過,

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

這兩個以上驗證碼不起作用。當我訪問blog.addon.com時 - 它只是顯示我在那裏的默認index.html。


來到我的問題的第2部分,

我還需要重定向blog.addon.com/post/54546/url-slug-hereaddon.com/pagename和我完全不知道如何實現這一目標。

我查了很多查詢,並嘗試了一堆,但就像早些時候我只是得到一個404,除此之外沒有什麼。

我只想讓那個特定的URL重定向,而不是整個集合或通配符。


我認爲這與該域是主域上的插件有關。但WordPress的永久鏈接代碼和我的其他本地301重定向,如domain.com/somepagedomain.com/someotherpage完美工作。

任何幫助,將不勝感激。

+0

讓我們走的部分,你有寶寶計劃hostgator或pl答允許無限域名?什麼是addon.com的根文件夾,我的意思是當你創建它作爲一個插件我相信你需要設置它的根目錄的子文件夾這是路徑?你創建的2個子域的根文件夾又是什麼? – Prix

+0

嗨, 下面是答案。 1.是的,我有寶貝計劃,它確實允許無限域名。 2. addon.com位於domain.com/addon - addon是根文件夾。 addon.domain.com是在此創建的子域。 3.子域blog.addon.com有根文件夾domain.com/blog – Shakey

+0

嬰兒計劃確實允許無限域名[link](http://www.hostgator.com/shared) - 這是孵化計劃是基於單個域的。 – Shakey

回答

3

鑑於你blog.addon.com是在文件夾domain.com/blog,將遵循.htaccess的文件夾domain.com/blog內:

Options +FollowSymLinks -MultiViews 

RewriteEngine on 
RewriteBase/

# Only redirect if the domain is: 
RewriteCond %{HTTP_HOST} ^blog\.addon\.com$ 
# Redirect anything to the domain URL 
# http://www.addon.com/directory/blog/anything 
RewriteRule ^/?(.*)$ http://www.addon.com/directory/blog/$1 [L,R=301] 

不過,如果你想重定向到addon.com/blog變化RewriteRule到:

RewriteRule ^/?(.*)$ http://www.addon.com/blog/$1 [L,R=301] 

如果你想簡單地將它重定向到www.addon.com就可以這樣使用它:

RewriteRule ^/?(.*)$ http://www.addon.com/$1 [L,R=301] 

關於你的第二部分作爲規則按順序執行,你可以使用部分1.htaccess的規則上面這條規則:

RewriteCond %{HTTP_HOST} ^blog\.addon\.com$ 
RewriteRule ^post/\d+/([^/]+)$ http://www.addon.com/$1 [L,R=301] 

上述規則將作爲通配符重定向如果你想要的確切的重定向,你可以使用:

RewriteCond %{HTTP_HOST} ^blog\.addon\.com$ 
RewriteRule ^post/54546/url-slug-here$ http://www.addon.com/url-slug-here [L,R=301] 
+0

我發現這一點時,我實際上已經找到了解決方案。我的解決方案與您的解決方案非常相似,除了將代碼放入domain.com的根目錄而不是domain.com/blog - 因爲將其放入addon.com的根目錄根本無法工作。感謝您花時間回答這個問題。我感謝你的迴應。 – Shakey

+0

不客氣。 – Prix