Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 将所有.html扩展重定向到.php_.htaccess - Fatal编程技术网

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

.htaccess 将所有.html扩展重定向到.php,.htaccess,.htaccess,我想更新网站上的所有页面,以使用包含页脚和页眉。因此,我必须将许多.html页面更改为.php 因此,我正在寻找一种方法,将所有以.html结尾的页面重定向到相同的url,但以.php结尾 RewriteEngine On RewriteRule ^(.*)\.html$ $1.php [L] 如果您希望将其作为重定向而不是重写来执行,请将[L]修改为[L,R],您可以采用更简单的方法,通过在.htaccess中添加以下行,将所有html文件作为php文件处理 AddHandler appli

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

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

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

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

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

AddHandler application/x-httpd-php .php .html
救命啊

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

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

AddType application/x-httpd-php .html

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

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

如果要永久移动实际的
HTTP 301
重定向

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


我选择了RewriteRule^(.*)\.html$$1.php[R],因为L标志似乎与我的一些其他规则有问题。谢谢你的帮助!L标志是一个“停止”标志。任何遵循它的规则都不会被执行这在Windows 8.1和XAMPP 1.8.3下对我不起作用。最后我使用了:“RewriteRule^(.*)\.html$/$1.php[L]”。请注意,唯一添加的是$1.php部分之前的/。Cheers.Original方法,但您应该提到,该解决方案增加了一些开销,因为它迫使PHP解析几乎毫无意义的任何请求(甚至是静态请求),这可能会降低您的性能。因为PHP可以以多种不同的方式运行,该行的确切语法以及其他行的必要性,变化很大。我让Linux管理员努力找到正确的语法和addtype/addhandler行的组合,以使其正常工作。(刚刚意识到您建议编辑httpd.conf,我的经验是使用.htaccess。我不知道结果是否相同。)
RewriteEngine on
RewriteCond %{THE_REQUEST} \ /(.+)\.php
RewriteRule ^ /%1.html [L,R=301]