阿帕奇.htaccess

Posted

技术标签:

【中文标题】阿帕奇.htaccess【英文标题】:Apache .htaccess 【发布时间】:2011-02-25 17:12:46 【问题描述】:

我有一个 htaccess 问题。

我的目录结构如下:

/
HEADER.html
README.html
/***/
/***/.htaccess

.htaccess

ServerSignature Off
Options +Indexes
HeaderName /HEADER.html
IndexIgnore HEADER.html
ReadmeName /README.html
IndexIgnore /README.html
IndexOptions +FancyIndexing
AddCharset UTF-8 .txt
IndexIgnore *.xml
IndexIgnore *.php

我的主目录是 /***/,当我通过浏览器导航到这个目录时,我在 /***/ 下的每个站点/目录中都包含了 HEADER.html 和 README.html,这工作正常。

我向我的 HEADER.html(位于根目录 / )中添加了一些 php 代码,我正在尝试添加到 htaccess:

AddType application/x-httpd-php .html .php .htm

这不起作用,我认为是因为 HEADER.html 在根目录中。

如果我尝试将 AddType... 添加到 /.htaccess(而不是 /***/.htaccess),它会覆盖我的 /***/.htaccess 规则。为什么?如何将 AddType 规则添加到我的 /***/.htaccess 以将 Apache 解析 html 文件作为 php 文件?

【问题讨论】:

【参考方案1】:

您的 PHP 解析器将按照设计的方式忽略 .html 文件。 .html 应该不被处理,如果你想在你的头文件中添加额外的逻辑,你必须将它转换为.phtml.php。您还可以创建一个新的头文件,然后只包含 html。

关于.htaccess 覆盖的问题,这就是apache mod_rewrite 的工作方式。这是一个分层系统,将加载它遇到的第一个系统,从/移动到请求的文件。

【讨论】:

【参考方案2】:
HeaderName /HEADER.php  
AddType text/html .php  
<Files "*.php">  
  AddHandler application/x-httpd-php .php  
</Files> 

【讨论】:

【参考方案3】:

.htaccess 文件会影响它所在的​​目录和任何子目录。它不能对树中它上面的目录做任何事情。查看htaccess docs 了解更多详情。

因此,如果您想保留 .html 扩展名,则必须在根级别“/.htaccess”执行“AddType application/x-httpd-php .html .php .htm”。或者,正如 Matt S 建议的那样,将扩展名更改为作为 PHP 处理的内容。

【讨论】:

以上是关于阿帕奇.htaccess的主要内容,如果未能解决你的问题,请参考以下文章

APACHE,HTACCESS:Proteger une répertoire avec une authentication classique en HTACCESS.阿帕奇,HTACCESS:

阿帕奇位置匹配

阿帕奇·德斯德·阿帕奇·德斯德·阿帕奇·德斯德·阿帕奇·德斯德·阿帕奇·阿帕奇·德斯德·阿帕奇·阿帕奇·德斯德·阿帕奇·阿帕奇·德斯德·阿帕奇·阿帕奇·德斯德·阿帕

阿帕奇水槽和阿帕奇风暴有啥区别?

阿帕奇骆驼与阿帕奇卡夫卡[重复]

二战时期有阿帕奇吗?