PHP 和 Django 在同一个 Apache 服务器上
PHP and Django on same Apache server
我有一个正在与其他人共享的 apache 服务器。其他人正在使用 PHP,而我正在使用带有 Python3 的 Django。
我正在尝试对其进行设置,以便对 www.myweb.com 的任何请求都转到 Apache,而 PHP 站点将处理该请求。但是任何带有 www.myweb.com/dj/anything 的东西都会出现在 django 中。例如,www.myweb.com/dj/products 应该由 django 处理,www.myweb.com/products 应该由 PHP 站点处理。
我已将此添加到我的 apache2.conf:
WSGIScriptAlias /dj/ /var/www/html/dj/tools/tools/wsgi.py
WSGIPythonPath /var/www/html/dj/tools
但是,只有 www.myweb.com/dj 被转发到 Django。 www.myweb.com/dj/products 没有转发到 Django,它转到 Apache,我得到 Apache 的 404。
我的 urls.py 中有 url 个条目与产品相匹配:
url (r'^products$', 'app.baseproduct_view.baseproduct'),
url (r'^$', 'app.base_view.base'),
我在堆栈溢出中找到了匹配的 post 并尝试了 WSGIScriptAliasMatch 但没有成功。
如果您有任何建议,请告诉我。提前谢谢了。
您应该从 /dj/
中删除结尾的斜杠,将其变成 文件路径 而不是 目录路径
/
有很大的不同。它本质上使它成为一个目录映射:
Where the target is a directory-path, URLs with a case-sensitive
(%-decoded) path beginning with URL-path will be mapped to scripts
contained in the indicated directory.
但是,如果您删除尾随 /
:
Where the target is a file-path, URLs with a case-sensitive
(%-decoded) path beginning with URL-path will be mapped to the script
defined by the file-path.
一旦删除 /
,所有路径都会发送到 wsgi.py
处理程序(因为它映射到文件,而不是目录),因此 django 的 url 机器可以开始工作。
如果保留 /
,Apache 将尝试在目录路径中查找文件 /dj/products
。
我有一个正在与其他人共享的 apache 服务器。其他人正在使用 PHP,而我正在使用带有 Python3 的 Django。
我正在尝试对其进行设置,以便对 www.myweb.com 的任何请求都转到 Apache,而 PHP 站点将处理该请求。但是任何带有 www.myweb.com/dj/anything 的东西都会出现在 django 中。例如,www.myweb.com/dj/products 应该由 django 处理,www.myweb.com/products 应该由 PHP 站点处理。
我已将此添加到我的 apache2.conf:
WSGIScriptAlias /dj/ /var/www/html/dj/tools/tools/wsgi.py
WSGIPythonPath /var/www/html/dj/tools
但是,只有 www.myweb.com/dj 被转发到 Django。 www.myweb.com/dj/products 没有转发到 Django,它转到 Apache,我得到 Apache 的 404。
我的 urls.py 中有 url 个条目与产品相匹配:
url (r'^products$', 'app.baseproduct_view.baseproduct'),
url (r'^$', 'app.base_view.base'),
我在堆栈溢出中找到了匹配的 post 并尝试了 WSGIScriptAliasMatch 但没有成功。
如果您有任何建议,请告诉我。提前谢谢了。
您应该从 /dj/
中删除结尾的斜杠,将其变成 文件路径 而不是 目录路径
/
有很大的不同。它本质上使它成为一个目录映射:
Where the target is a directory-path, URLs with a case-sensitive (%-decoded) path beginning with URL-path will be mapped to scripts contained in the indicated directory.
但是,如果您删除尾随 /
:
Where the target is a file-path, URLs with a case-sensitive (%-decoded) path beginning with URL-path will be mapped to the script defined by the file-path.
一旦删除 /
,所有路径都会发送到 wsgi.py
处理程序(因为它映射到文件,而不是目录),因此 django 的 url 机器可以开始工作。
如果保留 /
,Apache 将尝试在目录路径中查找文件 /dj/products
。