Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
是否将httpd.conf迁移到.htaccess?_.htaccess_Apache2_Httpd.conf - Fatal编程技术网

是否将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设置。