.htaccess php扩展插件删除不起作用


.htaccess php extension removal not working

我目前正在使用一个htaccess文件从我的网站文件中删除php扩展名。它在我的一个网站上运行正常,但在另一个网站却不正常,我们使用的是相同的代码。(但在中断的重定向上有额外的重定向)

奇怪的是,它已经工作了几个月,直到Media Temple将我们的网格服务器从Debian Squeeze更新为Wheezy时才停止工作(他们声称这不应该改变htaccess的工作方式,但不确定还有什么其他解释。)

显然,它仍然重定向html文件。有什么想法吗?

当前代码:

# BEGIN (mt) controlled settings
<IfModule !mod_fcgid.c>
AddHandler php-stable .php
</IfModule>
<IfModule mod_fcgid.c>
AddHandler fcgid-script .php
<Files *.php>
Options +ExecCGI
</Files>
</IfModule>
# END (mt) controlled settings
Options +MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^'.]+)$ $1.php [NC,L]
RewriteRule ^([^'.]+)$ $1.html [NC,L]
ErrorDocument 403 /error-403
ErrorDocument 404 /error-404
ErrorDocument 500 /error-500

该代码后面是我们的301重定向。

主机说这不是Debian的错误更新后,终于发现了这个问题。这就是他们所说的:

最近对网格的Wheezy更新确实修改了一些>意想不到的事情,包括MIME的配置方式,这就是为什么>>MultiViews适用于[站点1],它只包含.html文件,而[站点2]不适用,它包含.php文件。为了纠正这一点,我在~/domains/[site2]/.htaccess文件中添加了以下行,以便它正确解释.php文件:

AddType应用程序/x-httpd-php.php

所以代码现在看起来是这样的:

AddType application/x-httpd-php .php
# BEGIN (mt) controlled settings
<IfModule !mod_fcgid.c>
AddHandler php-stable .php
</IfModule>
<IfModule mod_fcgid.c>
AddHandler fcgid-script .php
<Files *.php>
Options +ExecCGI
</Files>
</IfModule>
# END (mt) controlled settings
Options +MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^'.]+)$ $1.php [NC,L]
RewriteRule ^([^'.]+)$ $1.html [NC,L]