从域重定向到Django项目的特定URL

时间:2012-01-15 21:48:43

标签: django apache .htaccess

我拥有两个域example1.com和example2.com。我设置example1.com指向我的Django项目的“/”,这意味着example1.com/*由urls.py处理。我希望example2.com实际指向一个特定的Django URL(例如“/ 123”),目前在example1.com/123上访问。

理想情况下,当您访问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吗?谢谢你的帮助。

2 个答案:

答案 0 :(得分: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]

答案 1 :(得分:0)

我需要编辑httpd.conf,而不是.htaccess。以下是相关部分:

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

这些行直接位于指向Django项目.wsgi文件的WSGIScriptAlias下面。我不知道为什么.htaccess文件不能解决问题,但希望这可以帮助其他人解决同样的问题。

谢谢!