【问题标题】:htaccess block without mod_rewrite [closed]没有 mod_rewrite 的 htaccess 块 [关闭]
【发布时间】:2012-12-12 16:10:32
【问题描述】:

.htaccess 的用途不仅仅是重写,例如阻塞。

问题是:为什么没有激活 mod_rewrite 就无法读取 htaccess(我需要阻止一个目录,我不想激活 mod_rewrite)?我该如何让它发挥作用?

【问题讨论】:

  • 你不需要mod_rewrite,只需要一些AllowOverride

标签: apache .htaccess mod-rewrite block


【解决方案1】:

.htaccess 被读取并不依赖于 mod_rewrite 处于活动状态(请参阅 Apache 文档中的 .htaccess files)。控制它的主要选项是AllowOverride,指定可以做什么,AccessFileName,可以覆盖默认文件名。您的 mod_rewrite 配置是否恰好包含 AllowOverride 指令?

【讨论】:

  • 我将其设置为全部。 AllowOverride All(在 httpd.conf 中)。没用。然后我在最后添加了 RewriteModule On 并像魅力一样工作。已删除且无法再次使用。
【解决方案2】:

除非您正在执行 url 重写,否则您不必启用 mod_rewrite。在您的 httpd.conf 文件中,您有一个名为 AccessFileName 的指令,默认为 .htaccess。此外,重要的组件是让您的 .htaccess 文件能够修改某些组件(您的目录)。您将为该目录设置一个指令,其中包含适当的 AllowOverride 键。你能稍微澄清一下你的问题吗?也许将您的 .htaccess 文件的内容放在您的帖子中,以便我们可以看到您要做什么?

<Directory "[important directory]">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

【讨论】:

  • 我试图在上面的评论中澄清(dbrobins 回答)。
  • AcessFileName 是 .htaccess
  • 是的,你说的时候我已经在写回复了。 :) 你能给我们一些你的 httpd.conf 文件和你的虚拟主机定义的摘录吗?
  • 我只是在输入答案...没有虚拟主机定义。只是一个大项目,在专用机器上,设置在 /var/www/html 中。只有 IP 访问,所以并不真正需要它。您刚刚添加的定义是通用配置。看来您在答案中添加了:)
  • 您应该尝试添加一个目录定义,就像我在上面的答案中所说的那样。这是直接摘自我的一个虚拟主机,用于我的一个项目。此外,请确保 .htaccess 文件的权限正确。它应该是 rwx----- 并且由运行您的 apache 进程(root 或 apache)的人所有。
猜你喜欢
  • 2010-09-20
  • 1970-01-01
  • 1970-01-01
  • 2010-11-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多