我想在特定的.htm文件中编译PHP代码,如果文件位于域的根目录我可以添加
<Files file.htm>
AddType application/x-httpd-php5 .htm
</Files>
到.htaccess,但如果文件位于另一个目录(例如/sub/file.htm),该怎么办?
答案 0 :(得分:1)
如果你使用的是<if>
支持
<If "%{PATH_INFO} =~ /.*\/sub\/(file|anotherfile|andanother)\.htm/">
AddType application/x-httpd-php5 .htm
</If>
答案 1 :(得分:0)
尝试使用FilesMatch:
<FilesMatch "file.htm$">
AddType ...
</Files>
它将正则表达式应用于文件名,因此这将匹配最后具有“file.htm”的任何文件路径。它适用于以“file.html”结尾的任何目录中的任何文件。请注意,这也将匹配“somefile.htm”和“/subdir/somefile.htm”。如果您的站点树中有其他文件可以触发此操作,则必须修改正则表达式以排除它们。
答案 2 :(得分:0)
也许您想使用httpd.conf而不是.htaccess文件。在这种情况下,您可以使用<Location>-directive
:
<Location /sub/file.htm>
AddType application/x-httpd-php5 .htm
</Location>
请注意,如果您想使用正则表达式匹配您需要在该位置前写~
的位置,或使用<LocationMatch>-directive
。
E.g:
<Location ~ "/sub/(file|anotherfile|andanother).htm">
AddType application/x-httpd-php5 .htm
</Location>
修改强>
另一种可能的解决方案(也仅在virtualhost-config中)应该是一个合并的<Directory>
和<Files>
- 指令:
<Directory /sub>
<Files file.htm>
AddType application/x-httpd-php5 .htm
</Files>
</Directory>