RewriteCond 和 RewriteRule 应该放在哪里?

RewriteCond 和 RewriteRule 应该放在哪里?

我使用 Apache 作为 HTTP 服务器来访问 Subversion 存储库,由于我没有.htaccess将 svn 目录绑定到 ,因此我找不到任何文件/var/www,我可以将RewriteCondRewriteRule放入httpd.conf吗?

答案1

文档为每个 Apache 指令提供相当标准的信息块。

RewriteCond Directive

Description:  Defines a condition under which rewriting will take place
Syntax:       RewriteCond TestString CondPattern
Context:      server config, virtual host, directory, .htaccess
Override:     FileInfo
Status:       Extension
Module:       mod_rewrite

注意Context:

这会告诉您特定指令可在何处使用。

答案2

将这些放入httpd.conf(存储库的虚拟主机部分)当然是可能的。此外,如果您通过引用另一个配置文件来包含虚拟主机,则应将 mod_rewrite 指令放入其中。

实际上,我觉得这样做更好;.htaccess应尽可能禁用文件。对于用户可以上传内容的站点尤其如此,以最大限度地减少安全风险并使配置完全处于带外状态。它还会影响性能——每次.htaccess访问可能适用的 URL 时都会重新读取该文件,因为它可以在不重新加载配置的情况下更改,而实际的服务器配置仅在重新散列或启动 apache 时重新评估。

相关内容