Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在cloudcontrol上,如何重写URL?_Python_Cloudcontrol - Fatal编程技术网

Python 在cloudcontrol上,如何重写URL?

Python 在cloudcontrol上,如何重写URL?,python,cloudcontrol,Python,Cloudcontrol,对于在cloudcontrol上运行的Python/Django应用程序,建议采用什么方式重写url,例如将wordpress博客附加到某个url路径,例如example.com/blog/,甚至只是重定向子域 我知道如何使用.htaccess文件来实现这一点——是否有一个等效文件可以在cloudcontrol上工作?我发现了一些使用.htaccess文件的cctrl示例应用程序(例如),但这些都是PHP,它似乎不适用于我的Django应用程序。您有多个选项。让我先解释一下基本概念。通常,clo

对于在cloudcontrol上运行的Python/Django应用程序,建议采用什么方式重写url,例如将wordpress博客附加到某个url路径,例如example.com/blog/,甚至只是重定向子域


我知道如何使用.htaccess文件来实现这一点——是否有一个等效文件可以在cloudcontrol上工作?我发现了一些使用.htaccess文件的cctrl示例应用程序(例如),但这些都是PHP,它似乎不适用于我的Django应用程序。

您有多个选项。让我先解释一下基本概念。通常,cloudControl上的每个应用程序都有自己的子域,如
app\u NAME.cloudcontrolled.com
。对这些子域(或来自指向该子域的CNAME)的请求由路由层转发到一个或多个可用于服务请求的容器。每个容器中运行的内容由Buildpack控制。根据每个语言生态系统的首选项(例如PHP与Python),容器中的运行时环境会有所不同。因此,对于PHP,Apache是可用的,而对于Python则不是

选项1:建议的方法是将
www.example.com
指向
PYTHON\u APP.cloudcontrolled.com
blog.example.com
指向
PHP\u APP.cloudcontrolled.com

选项2:或者,如果您必须使用
/blog
而不是
博客。
子域,您可以教PHP应用程序容器中运行的Apache只为
/blog
的请求提供服务,并将所有其他内容转发到
PYTHON\u App.cloudcontrolled.com

选项3:很快你也会有第三个选项,但这还不可用。我们目前正在致力于使pythonbuildpack能够在容器内运行Nginx,并使用WSGI与Python进程通信。(目前Python进程必须监听$PORT并直接为HTTP提供服务)一旦Nginx可用,您还可以将其配置为将
/blog
转发到
PHP_APP.cloudcontrolled.com
并直接为其他所有内容提供服务


我的建议是使用选项1,因为这样可以使两个应用程序很好地解耦。通过将Python应用程序中的
/blog
永久重定向到
blog.example.com
,您可以轻松完成迁移。

感谢您的回复!看起来在选项3可用之前,我们将使用子域。