File htaccess url重写(no 301!),但内容重复

File htaccess url重写(no 301!),但内容重复,file,.htaccess,duplicates,File,.htaccess,Duplicates,我有一个名为“abc.html”的文件。在过去,这被称为“abc.cfm”。从局外人的角度来看,我希望它看起来像abc.cfm仍然存在(它应该是abc.html的内容) 目前我的htaccess中有以下内容: 重写规则^abc.cfm$abc.html[L] 这很好用。无论何时进入abc.cfm,它都会显示abc.html的内容,以及我们的重定向(来自用户的POV) 问题是我现在也可以访问abc.html,这是重复的内容。我可以通过添加一个规范来解决这个问题,即abc.cfm是原始URL。我只是

我有一个名为“abc.html”的文件。在过去,这被称为“abc.cfm”。从局外人的角度来看,我希望它看起来像abc.cfm仍然存在(它应该是abc.html的内容)

目前我的htaccess中有以下内容: 重写规则^abc.cfm$abc.html[L]

这很好用。无论何时进入abc.cfm,它都会显示abc.html的内容,以及我们的重定向(来自用户的POV)

问题是我现在也可以访问abc.html,这是重复的内容。我可以通过添加一个规范来解决这个问题,即abc.cfm是原始URL。我只是想知道从html到cfm文件(内部再次调用html)是否可能有一个301。当然,不会进入无限循环:-)

我也对其他解决方案持开放态度。(但我无法更改指向abc.cfm文件的链接,也不希望301重定向到abc.html文件)

将这一行放在指令上的
重写引擎之前

如果要在mod_rewrite中执行此操作,可以使用以下方法:

RewriteRule ^abc.html$ abc.cfm [R=301, L]

这将迫使用户的浏览器只能请求.cfm页面,而服务器内部知道从.html页面获取内容。此规则需要在上面列出的内部重写规则之前,但在
指令上的
重写引擎之后。

我不这么认为。请求的URL最终是同一个资源URL,它将进入一个无法控制的循环。选中此选项,顶级解决方案似乎没有任何作用。两个页面仍然可以访问。实际上,我已经尝试过第二种解决方案,但它让我陷入了一个无限循环:Firefox检测到服务器正在以一种永远无法完成的方式重定向对此地址的请求。
RewriteRule ^abc.html$ abc.cfm [R=301, L]