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

时间:2015-02-27 23:14:34

标签: php html apache .htaccess

所以我在我的网站里面有这个文件夹..而且我不得不将所有文件类型从html更改为php但是在这个静态html中我使用html作为扩展名链接到这个文件...事情就是我有php现在

是否可以为此文件夹编写htaccess规则,以便.html的任何链接都将成为.php?

www.site.com/folder1/folder2/something.php 在something.php里面我有一个链接: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/$1 [R=301,L]

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

但它不起作用! 请帮忙!

更新:MICHAELOKGB答案几乎可以!剩下要做的唯一事情就是将rewritebase设置为实际文件夹:" / folder1 / folder2 /"它的工作就像一个魅力!谢谢你们!

1 个答案:

答案 0 :(得分:0)

使用它。我测试了它并且它有效。

RewriteEngine on  
RewriteBase /

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

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

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

Edit2:所以通过回复,看起来你应该将重写基础从/(整个站点)改为praticular文件夹。它很奇怪,因为我测试它的特定文件夹并且它有效,但无论如何:

RewriteBase /folder1/folder2