精确定位Filesmatch指令

时间:2014-09-13 14:50:21

标签: php html apache .htaccess mod-rewrite

我一直在寻找将我的网站的根index.html文件切换到index.php文件的最佳方法。我的研究表明,不小心这样做将导致我在谷歌的排名受到打击,我最好的选择是将索引文件解析为php,并指出这是网站上唯一需要进行此类解析的文件。

我在这里读了一篇很棒的SO帖子:Parse HTML as PHP这对于这个主题非常有用,我决定使用Filesmatch指令在我的.htaccess文件中执行此操作。然而,在那里提出的最佳响应恕我直言,其中提出了以下代码。

<FilesMatch "^file_name\.html$">
AddType application/x-httpd-php .html
</FilesMatch>

我当然将其实现为:

<FilesMatch "^index\.html$">
AddType application/x-httpd-php .html
</FilesMatch>

虽然这对于index index.html页面来说效果很好,但是所有站点的子目录也都有index.html页面,结果发现它们都被解析为php。为了安全起见,我不希望出现这种情况。我不是一个Apache专业人员,我在这里有点离开我的深度,因此问你们。有没有办法停止这个并使根索引文件成为这个Filesmatch指令唯一的目标文件?谢谢。

1 个答案:

答案 0 :(得分:0)

不是将/index.html解析为PHP文件,而是使用 301(永久重定向)/index.html/index.php,使用root .htaccess中的以下规则:

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/index\.html [NC]
RewriteRule ^index\.html$ /index.php [L,R=301,NC]