将所有.html扩展名重定向到.php

时间:2011-05-13 09:59:39

标签: .htaccess

我想更新网站上的所有页面,以使用包含页脚和页眉。所以我必须将很多.html页面改为.php。

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

7 个答案:

答案 0 :(得分:38)

RewriteEngine On
RewriteRule ^(.*)\.html$ $1.php [L]

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

答案 1 :(得分:8)

你可以做一个更简单的方法,把你的所有html文件作为php文件处理,方法是在.htaccess中添加以下行

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

答案 2 :(得分:6)

mod_rewrite救援!

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

答案 3 :(得分:1)

在apache httpd.conf文件中,您可以添加

AddType application/x-httpd-php .html

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

如果您想进行实际的HTTP 301 Moved Permanently重定向

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

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

答案 6 :(得分:-1)

我看到“Add * application / x-httpd-php .html”将强制PHP预处理简单的.html页面类型。

但是我想知道是否有人可以解释为什么Wewals的“AddType”比Jordonias的“AddHandler”更好(或不是)?

根据讨论here,他们似乎都工作正常,但开销略有不同。

所以我想我的大问题是:考虑到维护搜索引擎排名,将静态HTML页面转换为PHP平台并保持现有* .html链接“实时”的最佳选择是什么?

谢谢!