2012-01-15 108 views
0

我擁有兩個域example1.com和example2.com。我將example1.com設置爲指向我的Django項目的「/」,這意味着example1.com/*由urls.py處理。我想讓example2.com實際指向一個特定的Django URL(例如「/ 123」),它目前在example1.com/123上訪問。從域名重定向到Django項目的特定網址

理想情況下,當您訪問example2.com/abc時,Django會將請求視爲來自example1.com/123/abc,但URL仍然是「example2.com/abc」。

這是我目前在我的.htaccess文件中,但example2.com導致在Firefox中找不到「服務器」。

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example2\.com$ [NC] 
RewriteRule ^\.com(.*)$ http://example1.com/123/$1 [L] 

這是我第一次做類似htaccess文件的經歷,所以如果有東西沒有關係,請道歉。我正在使用mod_wsgi(在WebFaction上) - 這是否仍然支持重寫URL?感謝您的幫助。

回答

0

嘗試在您的example2.com網站的根目錄中將以下內容添加到您的htaccess文件中。

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/


RewriteCond %{HTTP_HOST} ^example2\.com$ [NC] 
#proxy all requests to example1.com/123 
RewriteRule (.*) http://example1.com/123/$1 [P] 
+0

這似乎並沒有這樣做,我得到了同樣的錯誤。請注意,example1.com具有相同的根目錄。那是問題嗎?非常感謝! – gwintrob 2012-01-15 22:31:03

+0

@gwintrob如果你試圖直接在瀏覽器中訪問'http:// example1.com/123/abc',這是否工作? – 2012-01-15 23:06:06

+0

嗨Ulrich。是的,我可以直接訪問該鏈接,但我試圖通過訪問example2.com/abc訪問它。 – gwintrob 2012-01-16 01:29:32

0

我需要編輯httpd.conf,而不是.htaccess。下面是相關線路:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(.*)?example2.com$ [NC] 
RewriteRule ^(.*)$ http://example1.com/123/$1 [P,L] 

這些線直接引導到Django項目.wsgi文件WSGIScriptAlias下方。我不知道爲什麼.htaccess文件沒有做到這一點,但希望這可以幫助其他人解決同樣的問題。

謝謝!