我需要在扩展名为.html的文件中解析PHP指令(我正在更新旧版网站并希望避免链接断开)。 存在大量的技巧和解决方案,其中没有一个在我当地使用MAMP Pro 3,最新版本(3.2.1)。
我将PHP版本设置为5.4.39否则,所有其他MAMP设置都是默认设置(包括加载fastCGI模块)。
全部检查AllowOverride,Order和Allow from。
我创建了一个.htaccess文件,显然是因为其他东西(例如自定义404页面)正在被读取。
我通过搜索找到的建议并尝试了哪些不起作用包括:
AddHandler php5-cgi .html .htm
和
AddHandler application/x-httpd-php .html
(以上的AddType变体,促使浏览器下载文档。)
我的项目位于MAMP htdocs文件夹的子目录中。 .htaccess文件位于项目子目录的根目录中,如果这有任何区别的话。 Mac OS 10.9.5如果有任何区别。
关于如何让这个看似简单的事情在MAMP中工作的任何想法? 谢谢。 史蒂夫
答案 0 :(得分:1)
AddHandler
规则可以特定于每个Apache + PHP安装,并且在更改生效之前可能需要重新启动apache。有关更多选项,请参阅此其他帖子:Server not parsing .html as PHP。
但是,更常见的解决方案是在您希望PHP解析的任何文件上使用.php后缀,然后使用.htacceess
规则将任何旧的html链接重定向到新的php对应项。
RewriteRule ^(.*).html? $1.php [R=301]
这样做的好处是告诉浏览器使用新网址更新任何书签。
答案 1 :(得分:0)
对于 MAMP Pro,这是有效的:
AddHandler php-fastcgi .html
供以后参考:
我在谷歌搜索中发现了很多变体,但没有任何效果(至少在前 10 页)。
当我几乎要放弃时,我尝试在我的 <?php phpinfo(); ?>
输出中搜索“handler”并找到了这个:
$_ENV['REDIRECT_HANDLER'] php-fastcgi
所以我把通常的 application/x-httpd-php
换成了 php-fastcgi
,瞧!
我承认这花了我更多的时间,所以希望它会帮助某人。