【问题标题】:PHP pages that will end with the .HTML extension using .htaccess file on Apache在 Apache 上使用 .htaccess 文件以 .HTML 扩展名结尾的 PHP 页面
【发布时间】:2016-11-23 06:58:32
【问题描述】:

我有一个已有 2 年历史的静态 HTML 和 CSS 网站。该网站有超过 150 个页面,要保持更新(如侧边栏内容、菜单、标题部分或页脚)的工作量太大。

所以现在我想将我的静态 HTML 和 CSS 网站转换为 PHP(并使用 php 包含),但由于 SEO 原因(反向链接到我的网站)我想保留 .html 文件扩展名。

例子:

www.example.com/malware.php 变为 www.example.com/malware.html

在我使用服务器端包含之前,但发现 SSI 会导致 SSI 注入等安全问题(发生在我身上)。

我的网站托管在 A2 Hosting(TURBO 共享主机帐户)https://www.a2hosting.com/web-hosting/compare

.htaccess 文件中的哪些代码行可以做到这一点?

【问题讨论】:

    标签: php html apache .htaccess


    【解决方案1】:

    将此添加到您的 .htaccess 文件中

    RewriteEngine on
    
    RewriteRule ^(.*)\.php /$1.html [R=301,L]
    

    【讨论】:

    • OP 确实指定保留 .html 扩展,而不是简单地重定向到 .php 替代。
    • 是的。但 OP 也表示他的动机是出于 SEO 原因保留 .html 是 URL。这解决了这个问题。
    • 但是无需更改网址很简单。
    • @GeoffAtkins :看看他给出的例子。我希望这能解决他的问题
    【解决方案2】:

    有两种不同的方法可以让 Apache 将 .html 解释为 .php 并照此处理。

    通常,你会使用这个:

    AddHandler application/x-httpd-php5 .php .html .htm
    

    但是我找到了一些共享主机账号,你需要调整这个命令,使用如下。

    AddHandler cgi-script .html 
    SetEnv PHP_EXTENSION .html
    

    请记住,这会增加您网站的服务器负载,但除非您做一些非常愚蠢的事情(您的主机会保护它),否则您应该没问题。

    您可以执行这些其他答案中概述的 301 重定向,Google 肯定会很快重新索引您的网站。但是,您的网站在搜索结果中的排名会在几周内波动。

    【讨论】:

      【解决方案3】:

      感谢大家的回答,但我在搜索了一段时间后才找到解决方案。我刚刚在 .htaccess 文件中包含了以下几行,它可以工作。

      RewriteEngine on
      RewriteRule ^(.*)\.html$ $1.php [nc]
      

      【讨论】:

      • 但这只会将所有.html 地址重定向到.php,您确实声明我想保留.html 文件扩展名
      猜你喜欢
      • 2013-03-13
      • 2011-08-29
      • 2012-07-04
      • 1970-01-01
      • 2016-12-28
      • 2010-11-23
      • 2012-05-14
      • 1970-01-01
      相关资源
      最近更新 更多