我正在尝试移植由另一个编码器开发的PHP站点(不再有人),我遇到了Apache Rewrite规则的问题,这些规则促使目标服务器上的文件下载。我确定这是一个简单的问题,但我在谷歌搜索答案时遇到了一些困难。我正在运行一个(专用的)Ubuntu服务器,它带有Apache和PHP5的标准安装,并从共享的共享服务器移植,一切运行正常。端口期间没有更改站点文件。
.htaccess文件包含此代码(仅限)
# Use PHP5 as default AddHandler application/x-httpd-php5 .php Options -Indexes FollowSymlinks RewriteEngine on RewriteRule ^html/(.*) /index.php?init=site\/$1\/$2\/$3\/$4\/$5\/$6\/$7\/$8\/$9 RewriteRule ^mykart$ /index.php?admin=true RewriteRule ^mykart/$ /index.php?admin=true RewriteRule ^mykart/(.*)$ /index.php?init=admin\/$1\/$2\/$3\/$4\/$5\/$6\/$7\/$8\/$9&admin=true
当我尝试打开文件http://www.mysite.com/html/#home时,浏览器尝试下载(index.php)文件而不是显示它,并显示消息
“你选择了开放 [对话框显示空白]
这是一个:application / x-httpd-php 从.... “
我想我一定都错过了PHP或Apache配置,但是什么?
编辑:为了澄清,服务器正在运行Apache2并且有几个运行良好的PHP站点。此外,如果我删除.htaccess文件并运行一个简单的phpinfo显示页面,一切运行正常,所以不是每次看到PHP的执行。
答案 0 :(得分:3)
我认为MIME类型application/x-httpd-php5
无效。我在我的本地机器上尝试了它,它也导致了同样的行为。
您是否尝试过application/x-httpd-php
?
答案 1 :(得分:0)
看起来像Apache配置问题,当然我可能是错的。您是否检查过httpd.conf以获取以下行:
# Add index.php to your DirectoryIndex line:
DirectoryIndex index.html index.php
AddType text/html php
答案 2 :(得分:0)
我有类似的问题。浏览器试图从php网站下载链接,而不是加载它们。
对我来说,这不是Php解释器问题,原来是错误的.htaccess文件。但是,由于浏览器缓存,我没有意识到禁用htaccess文件解决了几个小时的问题。
所以,不要忘记清除浏览器缓存!并重新启动Apache。