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

u5i3ibmn  于 2022-11-16  发布在  PHP
关注(0)|答案(7)|浏览(160)

我想更新一个网站上的所有页面,使用包含作为页脚和页眉。所以我必须把很多.html页面改为. php。
因此,我正在寻找一种方法来重定向所有以.html结尾的页面到同一个URL,但以. php结尾。

zpgglvta

zpgglvta1#

您可以采用一种更简单的方法,通过在.htaccess中添加以下行,将所有html文件作为php文件处理。

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

gfttwv5a2#

mod_rewrite来救援!

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

vpfxa7rd3#

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

AddType application/x-httpd-php .html

使.html文件在提供给用户之前通过php解析器。你也可以把这个指令添加到你的.htaccess文件中。第二个方法可能不起作用,这取决于你的主机是如何设置的。

rxztt3cl

rxztt3cl4#

如果你想要一个实际的HTTP 301 Moved Permanently重定向

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

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

huus2vyu5#

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

qni6mghb

qni6mghb6#

规则need需要在$1前面加一个/,否则,至少在我的cPanel中,我重定向到的文件有完整的路径,包括主文件夹等
在重写时重写引擎规则^(.*).html$ /$1.php [L,R]

nukf8bse

nukf8bse7#

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

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

相关问题