如何在Django子目录中安装WordPress?

2 投票
2 回答
981 浏览
提问于 2025-04-16 00:29

我在我的服务器上设置了Django,网址是 http://stevencampbell.org/

我想在 stevencampbell.org/blog/ 这个地址上运行WordPress。

我所有的Python和Django文件都是通过Fast_CGI来运行的(这是我服务器上唯一支持Django的选项)。我的 .htaccess 文件是这样的:

AddHandler fastcgi-script .fcgi
RewriteEngine On
RewriteRule ^(/media.*)$ /$1 [QSA,PT]
RewriteRule ^(/adminmedia.*)$ /$1 [QSA, PT]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi/$1 [QSA,L]

我想我需要为博客目录添加另一个RewriteRule,但到目前为止我尝试的都没有成功。我可以访问 /blog/index.php,但访问 /blog/ 时却出现了Django的错误,这意味着这个目录仍然是由dispatch.fcgi文件处理的。

另外,我对这些重写规则也不是很确定。如果我做错了什么,请告诉我。

2 个回答

0

这听起来有点奇怪。我对 mod_rewrite 了解不多,没法检查你的设置。不过,为什么不直接用基于Django的博客引擎呢?比如说这个 http://github.com/nathanborror/django-basic-apps

1
AddHandler fastcgi-script .fcgi
RewriteEngine On
RewriteRule ^(/media.*)$ /$1 [QSA,PT]
RewriteRule ^(/adminmedia.*)$ /$1 [QSA, PT]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/blog(/.*)?$
RewriteRule ^(.*)$ dispatch.fcgi/$1 [QSA,L]

看到那个额外的 RewriteCond 吗?它的意思是“如果请求不是 /blog/blog/whatever,那么就把请求重写到 dispatch.fcgi。”

在你的 WordPress 的 .htaccess 文件中,位于 /blog 文件夹里,你应该在 RewriteEngine On 这行后面添加 RewriteBase /blog/ 这一行。

撰写回答