htaccess 将文件夹内所有文件的 .html 更改为 .php

htaccess change .html to .php from all files inside folder

所以我的站点中有这个文件夹.. 我不得不将所有文件类型从 html 更改为 php 但在这个静态 html 中我有 links 到此文件使用 html 作为扩展名...问题是我现在有 php。

是否可以为此文件夹编写 htaccess 规则,以便任何 link 到 .html 都将变为 .php?

www.site.com/folder1/folder2/something.php 在 something.php 里面,我有一个 link 到: www.site.com/folder1/folder2/somethingelse.html (但现在实际上是 .php),我还有数百个已更改为 php

的文件

我试过很多规则,但我真的很菜鸟,我试过的最后一个是

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^website.net
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) http://www.website.net/folder1/folder2/ [R=301,L]

RewriteRule ^(.+)\.html$ http://www.website.net/folder1/folder2/.php [R=301,L]

但是没用! 请帮助!

更新:MICHAELOKGB 的回答几乎没问题!剩下要做的唯一一件事就是将实际文件夹设置为 rewritebase:“/folder1/folder2/”,它的工作就像一个魅力!谢谢大家!!

用这个。我测试了它并且有效。

RewriteEngine on  
RewriteBase /

RewriteCond %{THE_REQUEST} folder1/folder2/(.*)\.php  
RewriteRule ^(.*)\.php .html [R=301,L]  

RewriteCond %{THE_REQUEST} folder1/folder2/(.*)\.html  
RewriteRule ^(.*)\.html .php [L] 

编辑:忘记仅添加特定文件夹。如果您删除 /folder1/folder2/ 它将应用于整个站点。

Edit2:根据回复,您似乎应该将重写基础从 /(整个站点)更改为 praticular 文件夹。这很奇怪,因为我针对特定文件夹对其进行了测试并且它有效,但无论如何:

RewriteBase /folder1/folder2