如何在htaccess中将*.htm转换为*.php


how to turn *.htm to *.php in htaccess

我在stackoverflow上读了三个以上的问题,但它们都有以下问题之一:

  • 它重定向php到htm(没有发现出现,我已经有php文件的地方)
  • 当您输入*.htm时,它将被重定向到*.php(我希望访问者看到*.htm而不是*.php)

我来总结一下,我需要输入index。htm apache会将其重定向到。php但在地址栏中,我还是希望看到。htm而不是。php

RewriteEngine on
RewriteRule ([^/]*)'.htm$ $1.php [PT]

请查看http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule以获取所有可用选项,包括您可能想要包含的其他标志-例如QSA

注意,RewriteEngine on行(以及Options FollowSymLinks -参见上面链接到的文档)是必要的,如果你还没有在其他地方。您可能还需要在主Apache配置中使用AllowOverride FileInfo来启用.htaccess文件。

请注意,PT标志不是严格必需的,因为如果Apache确定它可以在没有重定向的情况下完成请求,它是默认的。

这是我刚从谷歌搜索中发现的另一个结果,它显示了与我在这里描述的几乎相同的东西:http://corz.org/serv/tricks/htaccess2.php(具体显示了围绕.htm -> .php翻译的一些规则)

嗨,这很容易做到:在你的。htaccess中,你会有一个这样的重定向:

RewriteRule ^(.*).htm$     $1.php    [QSA]
RewriteRule ^(.*).html$     $1.php    [QSA]