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

时间:2011-12-23 07:27:30

标签: php apache .htaccess

我在stackoverflow中已经阅读了3个以上的问题,但是所有这些问题都存在以下问题之一:

  • 它将php重定向到htm(找不到,我已经有php文件了)
  • 当您输入* .htm时,它会被重定向到* .php(我希望访问者看到* .htm不是* .php)

让我把它归结为你们:我需要输入index.htm并将apache重定向到.php,但在地址栏中我仍然希望看到.htm不是.php

任何帮助或建议都将不胜感激。

2 个答案:

答案 0 :(得分:1)

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确定它可以在没有重定向的情况下完成请求,那么它是默认值。

以下是我刚从Google搜索中找到的另一个结果,它显示了我在这里描述的几乎相同的内容:http://corz.org/serv/tricks/htaccess2.php(具体说明围绕.htm - &gt; .php翻译的一些规则。)< / p>

答案 1 :(得分:0)

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

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