wag2639 Asked: 2010-01-28 16:07:57 +0800 CST2010-01-28 16:07:57 +0800 CST 2010-01-28 16:07:57 +0800 CST httpd 配置中的 mod_rewrite 规则 772 如何以及在何处将我的 mod_rewrite 规则放入 httpd 配置中,以便它们仅在启动时解析一次,而不是每次读取我的 web 目录中的文件时。 附加信息: 假设所有脚本都在 .htaccess 文件中工作 运行 Apache 2.0.52 的 RHEL4 机器上的多个子/域 谢谢 apache-2.2 mod-rewrite 4 个回答 Voted Best Answer radius 2010-01-28T16:29:42+08:002010-01-28T16:29:42+08:00 我不确定是否理解了这个问题,但如果问题是“我目前在 .htaccess 文件中有重写规则,并希望将它们放入整个 apache 配置中。” 您必须<Directory /path/to/directory/where/htaccess/is>在 apache 配置中添加指令并将 .htaccess 文件的内容放入其中。 如果 .htaccess 在 /srv/web/site1/folder1/ 中,则在 apache 配置文件中添加以下内容 <Directory /srv/web/site1/folder1> Paste content of .htaccess here </Directory> DaveG 2010-02-10T04:09:30+08:002010-02-10T04:09:30+08:00 答案都在这里——它们只是没有捆绑在一起。 正如 memnoch_proxy 所说: “每个请求都会读取 .htaccess 文件中修改的规则。/etc/httpd/httpd.conf 和 /etc/httpd/conf.d/* 不是。我使用发送 SIGUSR1 的服务 httpd reload 触发对这些文件的新更改让工人优雅地重新启动。” 因此,在我看来,您正在使用 .htaccess 文件来定义适用于您的站点和/或文件夹结构的重写规则。 为了防止在每次访问目录或页面时重新读取和重新解释规则,需要将规则放置在您网站的中央 Apache 配置文件中。 这些规则的位置取决于系统管理员如何布置系统;在 Red Hat Enterprise Linux 环境中,我建议您将它们放在名为重写规则.conf位于/etc/httpd/conf.d 在具有默认构建的 Apache 的系统上,您可能必须将它们放在httpd.conf文件位于/usr/local/apache/conf curious_george 2010-01-28T16:29:59+08:002010-01-28T16:29:59+08:00 在您的 httpd.conf 文件中,添加类似“include modrewrite.conf”的内容。然后在 moderewrite.conf 文件中,添加重写规则。 如果未编译,还要确保包含 mod_rewrite 模块。 chris 2010-01-29T19:12:39+08:002010-01-29T19:12:39+08:00 每次访问与规则相关的服务器上的资源时,都会处理 RewriteRules。不管规则放在哪里,每次都会被解析。 但是,如果您的意思是您不喜欢在每次资源请求时从磁盘读取 .htaccess 的开销,那么 radius 的答案就是您想要的,另外还有一个明显的指令是在放置 .htaccess 文件的内容后删除它在主 apache 配置文件中。
我不确定是否理解了这个问题,但如果问题是“我目前在 .htaccess 文件中有重写规则,并希望将它们放入整个 apache 配置中。” 您必须
<Directory /path/to/directory/where/htaccess/is>
在 apache 配置中添加指令并将 .htaccess 文件的内容放入其中。如果 .htaccess 在 /srv/web/site1/folder1/ 中,则在 apache 配置文件中添加以下内容
答案都在这里——它们只是没有捆绑在一起。
正如 memnoch_proxy 所说:
“每个请求都会读取 .htaccess 文件中修改的规则。/etc/httpd/httpd.conf 和 /etc/httpd/conf.d/* 不是。我使用发送 SIGUSR1 的服务 httpd reload 触发对这些文件的新更改让工人优雅地重新启动。”
因此,在我看来,您正在使用 .htaccess 文件来定义适用于您的站点和/或文件夹结构的重写规则。
为了防止在每次访问目录或页面时重新读取和重新解释规则,需要将规则放置在您网站的中央 Apache 配置文件中。
这些规则的位置取决于系统管理员如何布置系统;在 Red Hat Enterprise Linux 环境中,我建议您将它们放在名为
位于在具有默认构建的 Apache 的系统上,您可能必须将它们放在
文件位于在您的 httpd.conf 文件中,添加类似“include modrewrite.conf”的内容。然后在 moderewrite.conf 文件中,添加重写规则。
如果未编译,还要确保包含 mod_rewrite 模块。
每次访问与规则相关的服务器上的资源时,都会处理 RewriteRules。不管规则放在哪里,每次都会被解析。
但是,如果您的意思是您不喜欢在每次资源请求时从磁盘读取 .htaccess 的开销,那么 radius 的答案就是您想要的,另外还有一个明显的指令是在放置 .htaccess 文件的内容后删除它在主 apache 配置文件中。