0

我有一个httpd.conf看起来像这样的文件:

Alias /robots.txt /var/www/tech_eval/static/robots.txt
Alias /favicon.ico /var/www/tech_eval/static/favicon.ico

AliasMatch /([^/]*\.css) /var/www/tech_eval/static/styles/$1

Alias /media/ /var/www/tech_eval/static/media/

<Directory /var/www/tech_eval/static>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias /tech_eval /var/www/tech_eval/scripts/django.wsgi

<Directory /var/www/tech_eval/scripts>
Order allow,deny
Allow from all
</Directory>

这适用于我的tech_eval项目,但它开始导致其他站点出现问题。我认为将所有这些东西移到.htaccess文件tech_eval夹中的文件中可能是合适的,这样它就不会引起问题。虽然,我不认为所有这些选项在运行时都会起作用.htaccess吗?我有哪些选择?我的意思是,我可以通过在所有内容前加上前缀来解决这个问题,tech_eval但是我最终会为我的所有网站提供一个大的主文件,它只会变得一团糟。

4

2 回答 2

1

使用 VirtualHosts 来限制这些行的范围,并使用每个虚拟主机的包含来组织您的配置文件并防止它变得笨拙。

于 2009-10-08T06:48:48.093 回答
1

实际上并不太清楚您要解决什么问题。为什么您甚至首先使用该配置?看起来您只是从 mod_wsgi 文档中复制了它,而不了解每个位的作用,并在它甚至不适合您的设置时开始使用它。特别是 mod_wsgi 文档中的示例是一个通用示例,不一定适合 Django。

因此,与其尝试修复该配置以满足某些未知目标,不如描述您需要什么,并告诉您应该使用的正确配置是什么。


更新 1

根据我下面的评论,也许然后使用:

AliasMatch /tech_eval/([^/]*\.css) /var/www/tech_eval/static/styles/$1

Alias /tech_eval/media/ /var/www/tech_eval/static/media/

<Directory /var/www/tech_eval/static>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias /tech_eval /var/www/tech_eval/scripts/django.wsgi

<Directory /var/www/tech_eval/scripts>
Order allow,deny
Allow from all
</Directory>

只需放弃 robots.txt 和 favicon.ico,或者至少不要从子 URL 站点获取它们,而是将它们直接粘贴到 DocumentRoot 目录中,并使用那些真正适用于整个站点的。

我认为它是 Django 设置模块中的“ADMIN_MEDIA_PREFIX”,然后您需要更改为“/tech_eval/media/”。

对于 Django,您甚至不需要 CSS 别名,而这原本是一个显示概念的通用示例,而不是对 Django 正确的东西。

无论如何,一切都在“/tech_eval”下,不应干扰同一站点上的其他应用程序。

于 2009-10-08T10:54:45.220 回答