- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
为什么我们有一个 .php 的 PHP 文件?我们可以将 PHP 文件另存为 .html 吗,因为在某些网站上,我看到过带有 .php 扩展名的网页?为什么我们不能为 PHP 文件提供 .html 扩展名?
它会影响 PHP 文件在 PHP 服务器引擎上的执行吗?如果我们将它作为一个 .html 文件,其中包含 PHP 代码。
最佳答案
如果您真的想为您的 PHP 代码提供 .html 文件,这是可以做到的。
您的网络服务器配置为通过查看扩展名来检测文件类型。默认情况下,它将通过 PHP 解释器路由 .php 文件,而 .html 文件将直接提供给最终用户。您可以通过服务器的配置文件或单个 Web 目录的本地 .htaccess 文件来配置此行为。有关如何执行此操作的信息,请参阅@kjy112 的回答。
问题是为什么?这样做对您来说重要吗,或者这只是您想要的美好事物。问问自己:您的最终用户会关心吗?甚至注意到?
浏览器默认以这种方式配置的原因是,可以将没有任何 PHP 代码的纯 HTML 文件提供给用户,而无需经过 PHP 解释器处理的开销。通过更改配置,所有 HTML 文件都将被解释为 PHP,即使它们实际上不包含任何 PHP 代码,因此您将向服务器添加额外的处理负载。当然,如果您的所有文件都包含一些 PHP 代码元素,您无论如何都会想要这种行为,因此您显然不会担心。
这样就可以了。但可能有更好的解决方案:
SEO(搜索引擎优化)的当前趋势是完全去除 URL 中的文件扩展名。如果您查看此问题的 URL,您会发现它有一个非常具有描述性的 URL,并且没有扩展名。如果您想遵循当前的最佳实践趋势,您可能需要考虑走这条路。
这是使用 mod_rewrite
完成的。 URL 的描述部分完全是任意的:如果您更改它,页面仍会正确加载。重要的部分是描述之前的ID号;描述只是为了提高页面的谷歌排名。对所涉及技术的全面讨论超出了这个问题的范围,但是周围有很多资源可以帮助您(尝试在本网站的此处搜索 mod_rewrite 开始)。
注意:我在此处提供的所有特定服务器配置建议都适用于 Apache Web 服务器。如果您使用的是 IIS 或某些其他服务器产品,您可能需要相应地调整它。
关于php - 如何保存扩展名为 .php 或 .html 的 PHP 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5155256/
我是 magento 的新手,目前我在 magento 安装期间遇到“必须加载 PHP 扩展 curl ”错误。你能帮帮我吗? 最佳答案 如果您的服务器上没有安装 curl,您可以键入以下命令之一来安
我在 macOS Mojave/macOS Big Sur/macOS Monterey/macOS Ventura 上使用最新的 php 版本 7.2 并收到类似错误 $composer requ
这个问题已经有答案了: Why generic type is not applicable for argument extends super class for both? (5 个回答) 已关
我正在使用 NightWatch.js 并进行一些 UI 测试,我想用一些额外的 desiredCapabilities 启动默认浏览器实例(即启用扩展并应用一些特定值)。 p> 注意:我可以执行这些
有人知道为什么我在 java 8 中使用此代码时没有服务器扩展名称吗: try { URL url = new URL(urlString); URLC
扩展提供给我的类(class)。为现有的类提供新功能。或扩展现有的mixin s 或虚拟类,任何东西都可以工作。 也许是这样的: class FlatButton {} // maybe no
我有一个关于使用 c 代码和 mod_wsgi 扩展 python 的问题。 我在 apache 服务器中有一个 django 应用程序,它查询 postgresql 数据库以生成报告。在某些报告中,
testcafe支持在Chrome浏览器中加载crx扩展吗? 如果是这样,请告诉我需要尝试什么方法。 我尝试了下面的代码,但没有成功 await t.eval(new Function(fs.read
这个问题已经有答案了: What is a raw type and why shouldn't we use it? (16 个回答) 已关闭 3 年前。 有什么区别: // 1 class A c
我正在编写一个 chrome 扩展来记录单击开始按钮后触发的请求。 这是我的文件:1. list .json { "manifest_version": 2, "name": "recorde
扩展是将较短的文本,例如一组提示或主题列表,输入到大型语言模型中,让模型生成更长的文本。我们可以利用这个特性让大语言模型生成基于某个主题的电子邮件或小论文。通过这种方式使用大语言模型,可以为工作与生活
我每天都在使用 vim 和 perforce 现在我的问题是,如果我想查看 perforce 文件修订版,则从命令模式下的 vim :!p4 打印文件#1 vim 试图让我获得缓冲区 #1。有没有办法
大家好,我有一个关于 NUnit 扩展(2.5.10)的问题。 我想做的是向 数据库。为此,我使用 Event 创建了 NUnit 扩展 听众。 我遇到的问题是公共(public)无效 TestFin
我有弹出窗口,而不是模态窗口。 如何通过单击页面的其他部分(不在窗口中)来关闭此窗口? 最佳答案 像这样的东西: function closeWin(e, t) { var el = win.
我通常非常谨慎地使用扩展方法。当我确实觉得有必要编写一个扩展方法时,有时我想重载该方法。我的问题是,您对调用其他扩展方法的扩展方法有何看法?不好的做法?感觉不对,但我无法真正定义原因。 例如,第二个
扩展 Ant Ant带有一组预定义的任务,但是你可以创建自己的任务,如下面的例子所示。 定制Ant 任务应扩展 org.apache.tools.ant.Task 类,同时也应该拓展 execut
我想要一个重定向所有请求的扩展: http://website.com/foo.js 到: http://localhost/myfoo.js 我无法使用主机文件将主机从 website.com 编辑
对于为什么 QChartView 放在 QTabWidget 中时会扩展,我有点迷惑。 这是 QChartView 未展开(因为它被隐藏)时应用程序的图片。 应用程序的黑色部分是 QOpenGLWid
如果在连接条件中使用 OR 运算符,如何优化以下查询以避免 SQL 调优方面的 OR 扩展? SELECT t1.A, t2.B, t1.C, t1.D, t2.E FROM t1 LEFT J
一旦加载插件的问题得到解决(在 .NET 中通过 MEF 的情况下),下一步要解决的是与它们的通信。简单的方法是实现一个接口(interface),使用插件实现,但有时插件只需要扩展应用程序的工作方式
我是一名优秀的程序员,十分优秀!