是否将httpd.conf迁移到.htaccess?
我有一个是否将httpd.conf迁移到.htaccess?,.htaccess,apache2,httpd.conf,.htaccess,Apache2,Httpd.conf,我有一个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/ <
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>
Alias/robots.txt/var/www/tech\u eval/static/robots.txt
别名/favicon.ico/var/www/tech_eval/static/favicon.ico
别名匹配/([^/]*\.css)/var/www/tech\u eval/static/styles/$1
别名/media//var/www/tech_eval/static/media/
命令拒绝,允许
通融
WSGIScriptAlias/tech_eval/var/www/tech_eval/scripts/django.wsgi
命令允许,拒绝
通融
这对我的
tech\u eval
项目来说很好,但它开始给其他网站带来问题。我想我应该把所有这些东西移到tech\u eval
文件夹中的.htaccess
文件中,这样就不会引起问题。尽管如此,我认为当从运行.htaccess
时,所有这些选项都不起作用,是吗我的选择是什么?我的意思是,我可以用tech\u eval
作为前缀来解决这个问题,但是我的所有网站都会有一个大的主文件,这会变得一团糟。使用虚拟主机来限制这些行的范围,每个虚拟主机都有一个include,用于组织您的配置文件并防止其变得笨拙。您试图解决的问题实际上还不太清楚。你为什么一开始就使用这种配置?看起来您只是从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>
AliasMatch/tech_eval/([^/]*\.css)/var/www/tech_eval/static/styles/$1
别名/tech_eval/media//var/www/tech_eval/static/media/
命令拒绝,允许
通融
WSGIScriptAlias/tech_eval/var/www/tech_eval/scripts/django.wsgi
命令允许,拒绝
通融
只需丢弃robots.txt和favicon.ico,或者至少不要从子URL站点获取它们,只需将它们直接粘贴到DocumentRoot目录中,并使用真正适用于整个站点的内容
我认为您需要将Django设置模块中的“ADMIN\u MEDIA\u PREFIX”更改为“/tech\u eval/MEDIA/”
对于Django,您甚至不认为需要使用CSS别名,这就是最初用来显示概念的通用示例,而不是Django的正确示例
无论如何,所有内容都在“/tech_eval”下,不应干扰同一站点上的其他应用程序。您要求的是
.htaccess
版本的线路?您考虑过使用虚拟主机吗?@e.c.ho:我想,如果这是最好的方法的话。我认为一些别名
可以通过重写规则
来完成,但我不知道如何使用WSGIScriptAlias
@blak3r:嗯?我一辈子都在使用共享服务器,终于对这台服务器有了一点控制。我想它会被归类为副总裁,但这对我来说是全新的:)你必须解释一下。嗯……这是怎么回事?我现在正在看这个
指令。。。我需要多个IP地址吗。。。?说到这一点,我是个十足的n00b。我最近安装了phppgadmin
,它看起来像别名,因为它是在/etc/apache2/conf.d
中设置的。我不能为我的每个网站都有一个这样的文件吗?这些文件是自动加载的吗?不幸的是,Apache配置文件的组织方式因发行版而异。有时这足以让你发疯。在httpd.conf文件中查找Include行,可能在底部附近。如果路径是一个目录,它将包含该目录中的所有文件。基于名称的虚拟主机不需要单独的IP地址()您需要单独的域名(或者至少是子域名)--我假设您需要这些域名,因为“我的所有站点”之类的短语。@Matt:Err..不,我没有单独的域名。它们只是在不同的文件夹中。为学校项目购买域名太便宜了:pI不是从mod_wsgi文档中复制的,我是从Django tut中复制的,我确切地知道它是做什么的。我有一个项目叫tech_-eval
;该配置特定于该项目。我想以某种方式封装该配置,以便它不会影响我的其他项目(因为httpd.conf
在某种意义上是“全局的”)。我认为它最适合放在实际的项目文件夹中,但我对其他解决方案持开放态度。教程从“”中复制了它。我担心的是,配置会将位于子URL的内容推送到站点的根目录。是的,原来的例子就是这么做的,但是你真的想要吗?您希望favicon.ico和robots.txt来自特定的子URL站点吗?是否要将CSS文件推送到根目录?因为Alias/AliasMatch优先于WSGIScriptAlias,所以可以在LHS前面加上“/tech_eval”。只需更改媒体URL根目录的Django设置。