【问题标题】:redirect all .html extensions to .php将所有 .html 扩展名重定向到 .php
【发布时间】:2019-05-04 22:11:52
【问题描述】:

我想更新网站上的所有页面以使用包含页脚和页眉。所以我不得不把很多.html页面改成.php。

所以我正在寻找一种方法将所有以 .html 结尾的页面重定向到相同的 url 但以 .php 结尾。

【问题讨论】:

    标签: .htaccess


    【解决方案1】:
    RewriteEngine On
    RewriteRule ^(.*)\.html$ $1.php [L]
    

    如果您希望将其作为重定向完成,而不仅仅是重写,请将 [L] 修改为 [L,R]

    【讨论】:

    • 我选择了 RewriteRule ^(.*)\.html$ $1.php [R],因为 L 标志似乎与我的其他一些规则有问题。感谢您的帮助!
    • L 标志阻止的是“停止”标志。任何遵循它的规则都不会被执行httpd.apache.org/docs/2.2/rewrite/flags.html
    • 这在 Windows 8.1 和 XAMPP 1.8.3 下对我不起作用。我最终使用了:“RewriteRule ^(.*)\.html$ /$1.php [L]”。请注意,唯一添加的是 $1.php 部分之前的 /。干杯。
    【解决方案2】:

    您可以做一个更简单的方法,并通过将以下行添加到您的 .htaccess 来将所有 html 文件作为 php 文件处理

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

    【讨论】:

    • 原始方法,但您应该提到此解决方案会增加一些开销,因为它会强制 PHP 解析任何请求(甚至是静态请求),这非常简单,可能会降低您的性能。跨度>
    【解决方案3】:

    mod_rewrite 来救援!

    RewriteEngine On
    RewriteRule ^(.+)\.html$ $1.php
    

    【讨论】:

      【解决方案4】:

      在你的 apache httpd.conf 文件中你可以添加

      AddType application/x-httpd-php .html
      

      使 .html 文件在提供给用户之前通过 php 解析器。您还可以将此指令添加到您的 .htaccess 文件中。第二种方法可能不起作用,具体取决于您的主机设置方式。

      【讨论】:

      • 因为 PHP 可以以多种不同的方式运行,所以该行的确切语法以及其他行的必要性都发生了很大变化。我让 Linux 管理员努力寻找正确的语法和 addtype / addhandler 行的组合以使其工作。 (刚刚意识到您建议对 httpd.conf 进行编辑,我的经验是使用 .htaccess。我不知道结果是否相同。)
      【解决方案5】:

      如果你想要一个实际的HTTP 301 Moved Permanently 重定向

      RewriteEngine on
      RedirectMatch 301 ^(.*)\.html$ $1.php
      

      RewriteEngine on
      RewriteCond %{THE_REQUEST} \ /(.+)\.php
      RewriteRule ^ /%1.html [L,R=301]
      

      【讨论】:

      • 您错误地互换了 .html 和 .php,因为问题是“将所有 .html 扩展名重定向到 .php”。一点修正和它的工作正常。更正: RewriteCond %{THE_REQUEST} \ /(.+)\.html RewriteRule ^ /%1.php [L,R=301] 上的 RewriteEngine
      【解决方案6】:

      请注意,AddType 命令会将您现有的 html 文件作为 php.ini 文件处理。如果您想要用新的 php 文件替换现有的 html 文件,则需要使用重写规则。

      【讨论】:

        猜你喜欢
        • 2013-02-16
        • 2014-03-15
        • 1970-01-01
        • 2011-10-11
        • 2023-03-14
        • 2013-03-08
        • 1970-01-01
        • 2012-10-24
        • 2012-03-04
        相关资源
        最近更新 更多