【发布时间】:2014-09-20 12:26:32
【问题描述】:
我刚刚用 php 和 mysql 服务器设置了 Apache 服务器。 我的问题是我的 html 文件中有 php 块,但它们根本没有执行。 如果 html 文件包含在 php 文件中,则执行块。因此,似乎 php 模块不提供 html 文件。
我试图在 htaccess 文件中更改它:
# Do not remove this line, otherwise mod_rewrite rules will stop working
RewriteBase /
#AddHandler application/x-httpd-php .html .php
#AddHandler php5-script .php
#AddHandler php5-script .html
#AddType text/html .php
#AddType text/html .html
#AddType application/x-httpd-php .html
RemoveHandler .html .htm AddType application/x-httpd-php5 .html .htm
DirectoryIndex home.html index.php
我可以看出 htaccess 文件被忽略了,因为它不执行 directoryIndex 命令。 上面所有的 AddType 和 AddHandler 我都试过了,现在都被注释掉了。
我已经添加到 httpd.conf 文件中:
AllowOverride All
但是当我保存它时,会出现一个警报,指出文件已成功上传,但在设置权限或时间戳时出现错误。
在 Apache 文档中,它建议我在某个对话框中打开忽略权限错误,但我在任何地方都看不到这些对话框。 我在哪里可以找到这些。它在 WinSCP 中吗?如果是的话在哪里。
我是否正在为我的 html 与 php 块问题寻找正确的方向, 或者是 addHandler 和 addType 不能解决问题。 进行这些更改的最佳位置是什么?
【问题讨论】:
-
您是否将
AllowOverride All添加到您的conf 的Directory 指令中? -
我真的不明白为什么您希望 html 模板由 php 解释器处理。你为什么不把 html 代码放到你的 php 文件中,反之亦然? (例如将 html 文件重命名为 php)
-
我将 AllowOverride 放在 httpd.conf 文件中。我实际上相信服务器以某种方式忽略了这个文件,并且我也将 DirectoryIndex home.html 命令放在那里(我把它放在那里作为检查,以查看更改是否有任何效果,但它们没有。)是应该有一个优先于所有内容的 VHOST 文件? (我在亚马逊上)我在哪里或如何找到它。我可以使用 Putty 的命令找到它吗?
-
我使用 html 文件中的 php 块来包含导航栏、标题和自定义对象等内容,这些对象在每个页面上看起来都相同,但在包含文件之前从文件中读取了不同的内容这页纸。如果我把它变成一个 php 文件,我需要回显所有的 html 部分,然后你会遇到交替双引号和单引号的问题。此外,我已经以这种方式设置了整个网站。改变它将是一项艰巨的工作。我的网站首先在另一台主机上,完全没有问题。所以我只需要提供这些 .html 文件