【问题标题】:How do i render .php URL with .html extension如何呈现带有 .html 扩展名的 .php URL
【发布时间】:2011-03-15 09:03:12
【问题描述】:

您好,我正在使用 Codeigniter PHP 框架。

有没有办法在 URL 中显示.html 扩展而不是.php 扩展?

【问题讨论】:

    标签: php codeigniter frameworks


    【解决方案1】:

    在此处找到的 config.php 上设置您的 url 后缀

    /application/config/config.php $config['url_suffix'] = '.html'; //@ line 60ish

    【讨论】:

    • 它适用于常规页面请求。但是ajax请求呢。当我们使用 ajax 向控制器发出请求时,它就坏了。请建议
    • ajax 的请求 url 是什么?
    【解决方案2】:

    我自己并没有真正尝试过,但请参阅用户指南的this 部分中的添加 URL 后缀部分。

    【讨论】:

      【解决方案3】:

      只需在 Apache 的配置中添加以下内容,它就会使用 PHP 处理 .html 文件:

      AddType application/x-httpd-php .phtml 
      

      这样您就可以将 .php 文件重命名为 .html。

      或者您可以使用 mod_rewrite 即时处理此问题

      【讨论】:

        【解决方案4】:

        使用 .htaccess 文件将 .html 的 url 重写为等效的 .php

        如果您使用的是 codeigniter,您甚至应该考虑完全隐藏任何扩展。

        【讨论】:

          【解决方案5】:

          如果你使用 APache。您可以使用 URL 重写规则。

          http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

          【讨论】:

            【解决方案6】:

            正如其他人所说,创建 .htaccess 文件将允许您将 .php 重写为 .html。以下代码应该可以解决问题:

            RewriteEngine on
            RewriteBase /
            RewriteRule ^(.*)\.html$ $1.php [L]
            

            我对你为什么真的想要这样做很感兴趣。默认情况下,Codeigniter 使用基于分段的方法,这种方法很友好,并且消除了查询字符串和文件扩展名。使用另一个 htaccess 规则,您可以从 url 中删除 index.php 以使它们更加干净:

            RewriteEngine on
            RewriteCond $1 !^(index\.php|images|robots\.txt)
            RewriteRule ^(.*)$ /index.php/$1 [L]
            

            因此您的网址可以如下所示:example.com/home、example.com/about 等。这比在网址中包含文件扩展名要漂亮得多。

            更多关于 codeigniter URL 的信息可以在这里找到:http://codeigniter.com/user_guide/general/urls.html

            【讨论】:

              猜你喜欢
              • 2015-04-13
              • 2017-11-13
              • 2019-03-14
              • 1970-01-01
              • 2016-03-01
              • 2014-11-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多