【问题标题】:using .htaccess to rename .php files .html?使用 .htaccess 重命名 .php 文件 .html?
【发布时间】:2012-09-12 09:57:44
【问题描述】:

只是想知道通过 .htaccess 将 .php 文件重命名为 .html 文件是否会有任何问题? 我们现有的网站是 html,我想用动态 php 页面更新页面,但是人们有链接保存到现有的 html 网站。如果这不可能,我唯一的方法是使用 iframe 创建 html 页面来包装 php 页面吗?

谢谢:)

【问题讨论】:

  • 有可能,.php文件可以改写成.html文件。但是人们拥有的页面名称和您使用 htaccess 重写的页面名称应该匹配
  • mod_rewrite 可以很容易地做到这一点,或者您可以配置 Apache 让 PHP 处理扩展名为 .html 的文件并将您的 PHP 代码放入 .html 文件中
  • 如果你的意思是你想将某人从 /foo/bar.html 重定向到 /foo/bar.php 那么是的,这会很好。

标签: php html .htaccess


【解决方案1】:

不是将php文件重命名为html,而是将使用html扩展名的文件重定向到php文件。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f        # don't apply to the existing html files
RewriteRule ^([^.]+)\.html$ /$1\.php [QSA,L]  # QSA means combine query string.

【讨论】:

  • 请注意,正则表达式中的. 是“任何字符”,因此这也将匹配notadocumenthtml,这将导致notadocumen.php(没有t,因为这是由@987654326 指定的@)
  • 是的,这就是我的想法。我只是想知道它是否会影响 PHP 文件的运行方式?
  • @GT22 不,它不会影响 PHP 文件的运行方式除非您使用以下$_SERVER 键之一:SCRIPT_URISCRIPT_URL、@987654330 @、REDIRECT_SCRIPT_URLREDIRECT_URLREQUEST_URI,因为这些现在将显示 file.html 而不是 file.php(即使 file.php 是在您的服务器上执行的实际文件)
【解决方案2】:

我相信

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

应该满足您的需求(未经测试)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-22
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 2014-09-09
    • 2014-01-20
    • 2013-07-28
    相关资源
    最近更新 更多