2011-03-01 103 views
4

为什么我们的php文件为.php,我们可以将.php文件保存为.html,因为在某些网站上,我看到了带.php扩展名的网页,为什么我们不能有.html文件的.html扩展名。如何将php文件另存为.php或.html扩展名?

它是否影响php文件在php服务器引擎上的执行。如果我们把它作为.html文件,里面有php代码。

+2

真的吗?如果页面被保存为。PHP引擎会直接传递它,你的PHP代码将会以纯文本格式呈现 – benhowdle89 2011-03-01 13:42:51

+2

@ benhowdle89 - 实际上你可以配置服务器通过PHP解析器发送.html文件(或者其他任何扩展名)。不一定是个好主意,但它可以完成。 – Spudley 2011-03-01 13:53:22

回答

13

如果你真的想与.html文件,以满足您的PHP代码,它可以做完了。

您的Web服务器配置为通过查看扩展来检测文件类型。默认情况下,它将通过PHP解释器路由.php文件,而.html文件将直接提供给最终用户。您可以通过服务器的配置文件或单个Web目录的本地.htaccess文件来配置此行为。有关如何执行此操作,请参阅@ kjy112的答案。

问题是为什么?这对你来说很重要吗?或者它只是你想要的一件好事。问问自己:您的最终用户会在意吗?甚至通知?

默认情况下这样配置浏览器的原因是为了使没有任何PHP代码的普通HTML文件可以传递给用户而不需要经历PHP解释器处理的开销。通过改变配置,所有的HTML文件都将被解释为PHP,即使它们实际上不包含任何PHP代码,所以您将为您的服务器增加额外的处理负载。当然,如果你的所有文件都含有PHP代码的一些元素,那么无论如何你都会想要这种行为,所以这显然不会让你担心。

所以可以做到。但可能有更好的解决方案给你:

当前SEO(搜索引擎优化)的趋势是摆脱URL中的文件扩展名完全。如果您查看此问题的网址,则会看到它有一个非常具有描述性的网址,并且没有扩展名。如果你想遵循当前的最佳实践趋势,你可能需要考虑沿着这条路线走下去。

这是使用mod_rewrite完成的。 URL的描述部分完全是任意的:如果更改它,页面仍然会正确加载。重要部分是描述前的ID号码;这个描述只是为了给它的谷歌排名提供一个提升。对所涉及技术的全面讨论超出了这个问题的范围,但是有大量资源可以帮助你(尝试在本站点上搜索mod_rewrite以开始)。

注意:我在这里给出的所有特定的服务器配置建议适用于Apache Web服务器。如果您使用IIS或其他服务器产品,则可能需要相应地调整它。

+0

+1写得很好的解释和SEO – kjy112 2011-03-01 14:10:49

+0

什么更好,根据你的修改.htaccess文件或url重写。 – parmanand 2011-03-01 15:58:15

+1

@Demla Pawan:如果我们仍在讨论URL中的.php v .html,那么它对最终用户没有任何不利。对服务器来说,修改.htaccess(或者更好的,主服务器配置)会更高效,因为它将直接访问指定的文件,而不必像mod_rewrite那样通过正则表达式解析器来运行每个URL。然而,mod_rewrite选项会意味着,如果用户浏览它们,则URL的.php和.html版本都可以使用。对于更复杂的URL解决方案,例如我描述的SEO技术,mod_rewrite是正确的答案,因为这不能简单地通过重命名文件来完成。 – Spudley 2011-03-01 17:18:23

6

你可以做到这一点,但你必须修改你的.htaccess

RemoveHandler .html .htm 
AddType application/x-httpd-php .php .htm .html 
+0

你的意思是.htaccess我认为..... – Stewart 2011-03-01 14:51:23

+0

@Stewart oops tyoop ... – kjy112 2011-03-01 14:53:02

+0

如果我们将文件保存为.html,并设置规则什么你说的.htaccess文件,这个规则强加在服务器上的每个文件或者它将围绕某些特定的目录集中,这些目录需要被提供。 – parmanand 2011-03-01 15:55:52

1

的替代KJY的答案是使用URL重写,这将让你使用任何你想要的页面扩展/文件名。

+0

最好还是根据你的修改.htaccess文件或url重写。 – parmanand 2011-03-01 15:58:49

+0

@Demla重写网址,它基本上是标准。如果你曾经移动过服务器,那么它也会更具可移植性,而且如果有人设法注入所有HTML页面,那么你不必担心所有的HTML页面都会突然执行PHP代码。它还为您提供更多选项来显示页面名称。 – 2011-03-01 17:07:12

2

Rewrite Info here

file.htm所有请求都会被发送到file.php

Options +FollowSymlinks 
RewriteEngine on 
RewriteRule ^(.*)\.htm$ $1.php [NC] 
+0

什么更好,根据你的修改.htaccess文件或url重写。 – parmanand 2011-03-01 15:56:45