8

我一直在尝试使用.htaccess文件让 .html 文件像 .PHP 文件一样进行处理。我使用了以下,两者都不起作用,并且尝试访问测试页面让我可以选择下载不存在的文件。我怎样才能解决这个问题?

我尝试了这两种方法;

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

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

这个想法是允许包含在我的网页中,但仍使用 .html 文件。

下面是我的 .htaccess 文件中的更多代码,我认为它不会与 addType 混淆,但我会发布它。

## Hide .html extension
# To externally redirect /dir/foo.html to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC]
RewriteRule ^ %1 [R,L,NC]

## To internally redirect /dir/foo to /dir/foo.html
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [L]

1&1 IONOS决定只允许我使用以下代码进行操作;

AddHandler x-mapp-php5 .html .htm
4

5 回答 5

9

您需要添加

AddHandler application/x-httpd-php .html .htm
于 2013-10-16T08:01:12.690 回答
4

尝试这个:

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

或者

AddHandler x-httpd-php .html .htm

或者

<FilesMatch "\.(htm|html|php)$">
SetHandler application/x-httpd-php
</FilesMatch>

或者

<FilesMatch "\.(htm|html|php)$">
SetHandler application/x-httpd-php5
</FilesMatch>

编辑: 对于 1&1 服务器:

AddType x-mapp-php5 .html .htm

其中之一应该工作

于 2013-10-16T08:03:12.300 回答
0

你也可以试试下面的代码。

AddHandler x-httpd-php .html .htm

或者

AddType application/x-httpd-php .html .htm
于 2013-10-16T07:58:45.120 回答
0

您需要知道您是否使用 php-fpm 而不是 php 模块。如果您使用的是 php-fpm,那么您必须做两件事:

1) 在 httpd.conf 添加以下行:

<FilesMatch \.(html)$>
    SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>

2)在 php-fpm.d/www.conf 确保你有这条线

 security.limit_extensions =

这将起作用。也许有更好的设置,我不知道。我确实知道,如果您有 php-fpm,那么涉及 AddHandler、AddType 的答案都不会起作用。

于 2019-05-06T19:08:43.953 回答
0

长话短说,/etc/php/8.1/fpm/pool.d/www.conf在 php-fpm 配置文件中使用以下指令进行编辑为我解决了这个问题。

security.limit_extensions = .php .html

我在一个带有 Nginx + php-fpm 的基于 Unix 的操作系统上,我Access denied.在浏览.html文件时得到了

我检查了 Nginx 日志文件,但日志文件没有发现问题,但发现问题的原因是在 Nginx 位置块之后

location ~ \.html$ {
    fastcgi_pass   unix:/var/run/php-fpm.sock;
    ...
}

在 macOS 上,我的 php-fpm 配置文件位于/usr/local/etc/php/8.1/php-fpm.d/www.conf

在 Debain OS 上,配置位于/etc/php/8.1/fpm/pool.d/www.conf

如果这没有帮助,您可以使用以下方法之一来搜索配置文件

find -name "php-fpm.conf" -o -name "www.conf"
locate php-fpm.conf
于 2022-01-27T07:50:17.907 回答