2012-10-05 153 views
0

谷歌我有一个网站有一堆旧的链接到它的网页,他们是这样的链接。CFM重定向301

/mainpage.cfm?linkId=84&LinkType=mainlink 

我想301重定向他们与htaccess,但没有我试图工作。

RewriteEngine On 

RewriteCond %{REQUEST_URI} ^/architectural 
RewriteRule .* /mainpage.cfm?linkId=84&LinkType=mainlink 

任何想法,我已经尝试了很多这种变化,看来问题是.cfm文件。

回答

-1

您可以改为在ColdFusion页面内执行重定向。只需将以下行添加到mainpage.cfm文件的顶部(假设您希望重定向该页面的每个请求)。如果您只想根据URL参数重定向特定linkId和/或LinkType,则可以添加一些条件逻辑。

同样,如果你希望每次请求mainpage.cfm重定向只添加这是文件(注意您需要更改的URL重定向页面)顶部:

<cflocation url="http://host/architetural" statusCode="301" addtoken="no"> 

statusCode属性被添加到ColdFusion 8中 - 所以你必须运行新的或更新的

+0

谢谢,但我没有cfm站点enywhere,网站不见了,我只需要在新网站上的Apache不重定向在相同的域名下的旧链接 –

+0

如果他们有.htaccess可用(正确的工具对于这份工作),建议在应用服务器上做(不是正确的工具)是一个不好的建议。 –

0

你的问题有点模糊。你说你想重写/mainpage.cfm?linkId=84&LinkType=mainlink,但你也有这个目标你的RewriteRule。所以我认为有些电线穿过某处。你能不能更新你的问题,以包括“我想重写[这个当前URL的例子]到[你希望第一个结束的URL]”。还有可能需要RewriteCond的任何其他注意事项以及模式中的任何变化。

然后我们可以得到您的规则/条件整理出来。

要回答您提出的确切问题,您的RewriteCond将拒绝/mainpage.cfm?linkId=84&LinkType=mainlink,因为它不符合^/architectural

不过我怀疑这是不是你的意思是问的问题...

0

在mod_rewrite的重写规则只能看到URI的目录和文件的一部分,而不是查询字符串。所以要匹配查询字符串,您需要使用RewriteCond。

例如

RewriteCond %{QUERY_STRING}   linkId=(\d+)&LinkType=mainlink [NC] 
RewiteRule ^mainpage\.cfm    newpage.php?linkid=%1 [NC,L] 

我已经在其中的RewriteCond我然后通过1%的重写规则指,因为这是一种在的RewriteCond匹配组的语法相匹配的LINKID。

正如@AdamCameron指出,你不会说明你想重定向到哪里,但是这应该会给你一些工具来改变它。