.htaccess-将站点从.html移动到.php,但不包括文件夹

.htaccess-将站点从.html移动到.php,但不包括文件夹,php,regex,apache,.htaccess,Php,Regex,Apache,.htaccess,我有一个新站点,并将该站点的旧版本放在/old文件夹中 新站点的页面名称与旧站点相同,只是它们现在都有一个.php扩展名 我有以下SEO规则将所有.html文件定向到.php RedirectMatch 301 (.*)\.html$ http://www.mysite.com$1.php 但我仍然需要能够访问/old文件夹中的所有内容-重定向显然也在重定向此处的文件(例如,mysite.com/old/mypage.html将转到mysite.com/old/mypage.php-我需要.h

我有一个新站点,并将该站点的旧版本放在/old文件夹中

新站点的页面名称与旧站点相同,只是它们现在都有一个.php扩展名

我有以下SEO规则将所有.html文件定向到.php

RedirectMatch 301 (.*)\.html$ http://www.mysite.com$1.php
但我仍然需要能够访问/old文件夹中的所有内容-重定向显然也在重定向此处的文件(例如,mysite.com/old/mypage.html将转到mysite.com/old/mypage.php-我需要.html版本)

我试着自己去弄清楚,但我不确定所有的RedirectXYZ命令


有什么想法吗?

您可以通过以下方式实现:


(?!/old)
拒绝在此位置包含字符串
/old
的匹配。我们使用
^
将此限制为匹配字符串的开头。

很酷,谢谢。一开始它不起作用,所以我在url中添加了$1只是为了查看它存储了什么,然后注意到实际的页面名是$1。因此,将2美元替换为$1@Josh好的,这意味着mod_rewrite没有将组分配给
(?!/old)
。修正我的答案。
RedirectMatch 301 ^(?!/old)(.*)\.html$ http://www.mysite.com$1.php