.htaccess-将站点从.html移动到.php,但不包括文件夹
我有一个新站点,并将该站点的旧版本放在/old文件夹中 新站点的页面名称与旧站点相同,只是它们现在都有一个.php扩展名 我有以下SEO规则将所有.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
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