将子域指向 Django 中的特定 url
我有一个 Django 站点,正在使用 mod_wsgi 和 Apache。 (例如,example.com)我创建了一个子域(例如,info.example.com)并希望将其指向现有项目中的应用程序。我是否有可能有一个 urls.py 文件,并且 example.com/info 和 info.example.com 指向 Django 项目中的同一视图(无需将整个项目复制到不同的目录中)?
如果是这样,我该怎么办?目前,现有项目的 example.com virtalhost 配置如下所示:
<VirtualHost 12.34.56.78:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /srv/www/Example/Pub_html
WSGIScriptAlias / /srv/www/Example/example.wsgi
<Directory /srv/www/Example/Example>
Order allow,deny
Allow from all
</Directory>
Alias /robots.txt /srv/www/Example/robots.txt
Alias /favicon.ico /srv/www/Example/favicon.ico
....
</VirtualHost>
提前致谢!
更新:我在这里做了一个快速修复,创建了另一个与现有项目共享数据库表和模板文件夹的 Django 项目。它可以工作,但它并不真正干燥:)
I have a Django site, working on mod_wsgi and Apache. (eg, example.com) I made a subdomain (eg, info.example.com) and want to point it to app in the existing project. Is it possible, that I have one urls.py file, and example.com/info and info.example.com point to the same view in Django project (without duplicating the whole project in different directory)?
If so, how can I do it? Currently the example.com virtalhost config for the existing project looks like this:
<VirtualHost 12.34.56.78:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /srv/www/Example/Pub_html
WSGIScriptAlias / /srv/www/Example/example.wsgi
<Directory /srv/www/Example/Example>
Order allow,deny
Allow from all
</Directory>
Alias /robots.txt /srv/www/Example/robots.txt
Alias /favicon.ico /srv/www/Example/favicon.ico
....
</VirtualHost>
Thanks in advance!
UPDATE: I did a quick fix here by creating another Django project which shares database tables and template folder with the existing one. It works, but it's not really DRY :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我想我会用反向代理来做到这一点。如果您有
mod_proxy
和mod_proxy_html
可用,请尝试如下操作:详细信息可能不太正确,所以如果您无法使其工作,请告诉我。
I'd do this with a reverse proxy, I reckon. If you have
mod_proxy
andmod_proxy_html
available, try something like this:the details may not be quite right, so let me know if you can't get it to work.