如何以及在哪里将我的mod_rewrite规则放在httpdconfiguration中,以便在启动时只parsing一次,而不是每次读取web目录中的文件。
附加信息:
谢谢
我不确定是否理解这个问题,但是如果问题是“我现在已经在.htaccess文件中重写了规则,并且想把它们放在整个Apacheconfiguration中。 您必须在apacheconfiguration中添加<Directory /path/to/directory/where/htaccess/is>指令,并将.htaccess文件的内容放入其中。
如果.htaccess位于/ srv / web / site1 / folder1 /中,则在apacheconfiguration文件中添加以下内容
<Directory /srv/web/site1/folder1> Paste content of .htaccess here </Directory>
答案都在这里 – 它们并不是全部捆绑在一起。
由于memnoch_proxy指出:
“.htaccess文件中修改的规则是在每个请求中读取的,/etc/httpd/httpd.conf和/etc/httpd/conf.d/*不是。我使用service httpd reload触发对这些文件的新的更改,它发送一个SIGUSR1让工人重温一下“。
所以这听起来像你使用.htaccess文件来定义适用于您的网站和/或文件夹结构的重写规则。
为了防止每次访问目录或页面时重新读取和重新解释规则,需要将规则放置在您的网站的中央Apacheconfiguration文件中。
这些规则的位置取决于系统pipe理员如何布置系统; 在红帽企业Linux环境下,我build议你把它们放在一个名为的文件中
重写,rules.conf
位于
/etc/httpd/conf.d
在一个默认的Apache版本的系统上,你可能需要把它们放在最后
httpd.conf文件
文件位于
在/ usr /本地/ Apache / conf目录
在你的httpd.conf文件中添加“include modrewrite.conf”之类的东西。 然后在moderewrite.conf文件中添加重写规则。
还要确保你已经包含mod_rewrite模块,如果没有编译。
每次访问规则涉及的服务器上的资源时,都会处理RewriteRules。 不pipe规则的位置在何处,每次都会被parsing。
然而,如果你的意思是你不喜欢在每个资源请求中从磁盘读取.htaccess的开销,那么radius的答案就是你想要的,附加了明显的指令,然后在放置其内容之后移除.htaccess文件在主要的apacheconfiguration文件中。