2012-10-05 150 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指出,你不會說明你想重定向到哪裏,但是這應該會給你一些工具來改變它。