我在ColdFusion中找到了301重定向的代码:
<cfheader statuscode="301" statustext="Moved Permanently">
<cfheader name="Location" value="[the URL to be redirected to]">
<cfabort>
我将此代码放在哪个文件中?它是“缺失的页面”,当有人登陆它时,现在应该给出301错误吗?或者是否有一个类似.htaccess的文件,我应该把它放进去?
答案 0 :(得分:3)
首先:3xx状态代码不是错误,而是重定向。
您的代码段没有错,但ColdFusion有一种更简单的方法来使用单个语句执行这3行:
<cflocation url="[the URL to be redirected to]" statusCode="301">
您可以将此标记放在.cfm模板中的任何位置。 ColdFusion执行到目前为止的所有操作然后停止执行,相应地设置响应头,丢弃输出缓冲区(因为3xx不应包含正文)并传输响应(带位置引用的头)。
注意:您的代码段会包含响应正文中的内容(例如,您放入<cfoutput>
标记中的所有内容),这通常是不需要的。因此,我强烈建议您使用cflocation
标记进行常见重定向。它还可以防止您忘记在<cfabort>
之后放置它。
对于像#34;将访问者从不再存在的页面重定向到新页面的常见情况&#34;,您只需执行此操作:
<强> no_longer_existing_page.cfm 强>
<cflocation url="the_new_page.cfm" statusCode="301" addToken="false">
<强> the_new_page.cfm 强>
<cfoutput>Hello World !!</cfoutput>
对这两个页面的请求现在将指向the_new_page.cfm
并返回Hello World !!
。 (这是重定向,而不是重写,因此在两种情况下,浏览器中的地址都会更改为the_new_page.cfm
。)