2013-05-30 59 views
0

我幾乎沒有.htaccess的任何知識,但我摸着代碼。 :).htaccess重寫規則或從一個動態url域重定向到另一個域

我有一個CMS與2個域名,每個域拉一個完全不同的網站,但通過一個後端管理。這些網站是相關的,所以沒有真正的保密 - 父母和孩子。

我有一個擴展只能在一個域上運行。它通過PayPal處理付款,PayPal將賬戶限制爲每個組織只有一個域。它與兩個域一起使用。

我在整個後端都有相對鏈接,所以菜單和文章鏈接到任何與該擴展有關的事物都帶有生成它的域。我需要一種方法來自動將子網站的任何內容直接指向父網站,包括凌亂鏈接和SEF鏈接。

所以,這裏有一個例子:

child.com/index.php?option=com_civicrm&task=civicrm/pcp/info&reset=1&id=1 

parent.org/index.php?option=com_civicrm&task=civicrm/pcp/info&reset=1&id=1 

child.com/wildcard/wildcard 

parent.org/wildcard/wildcard 

擴展名是com_civicrm。在它工作之後,我需要任何變量。這些可能也可能不是「.../pcp/...」

如果這很重要,後端只會因parent.org/administrator/index.php?option=com_civicrm而有所不同...所以我不希望意外丟失「管理員」而將後端指向前端。

由於提前, 海倫

回答

1
RewriteEngine On 
RewriteBase/

# if domain is child.com, and url is '/wildcard/wildcard', redirect to same url on parent.org 
RewriteCond %{HTTP_HOST} child\.com$ 
RewriteRule ^wildcard/wildcard$ http://parent.org/wildcard/wildcard [R=302,L] 

# if domain is child.com, and querystring contains 'option=com_civicrm', redirect to same url on parent.org 
RewriteCond %{HTTP_HOST} child\.com$ 
RewriteCond %{QUERY_STRING} option=com_civicrm 
RewriteRule (.*) http://parent.org/$1 [R=302,L] 

快樂摸索:-)

+0

我沒有試過呢,但讓我再問一個問題。對於通配符重定向,如果我讓SEF成爲像parent.org/donate-*/*這樣的東西,而通配符是 - 並且可能或不可能有/的任何東西,是否有編碼的方法,所以我不必須爲每個實例構建一個ReWriteRule?通過仔細的海基會計劃,我可以這樣做:) – helenbn

+0

'RewriteRule^donate - (。*)$ http://parent.org/donate-$1 [R = 302,L]':-) – Gerben

+0

SEF的第二隻狐狸工作不正常。如果我在「捐贈」後沒有更多字符時使用它,它不會更改域。如果我在「donate」之後有字符時使用它,比如「donate-this-page」,我會在我的FireFox瀏覽器中看到「頁面沒有正確重定向」錯誤。 :( – helenbn

相關問題