2012-12-12 41 views
0

我有一個名爲「abc.html」的文件。過去這被稱爲「abc.cfm」。從局外人的角度來看,我希望它看起來像abc.cfm仍然存在(它應該是abc.html的內容)。htaccess url rewrite(no 301!),但重複的內容

目前我有這在我的htaccess: 重寫規則^ abc.cfm $ abc.html [L]

這完美的作品。無論何時您訪問abc.cfm,它都會顯示abc.html的內容,以及重定向(來自用戶的POV)。

問題是我現在也可以達到abc.html,這是重複的內容。我可以通過添加一個規範的說法來解決這個問題,abc.cfm是原始URL。我只是想知道是否可能有一個301從HTML到cfm文件(內部再次調用html)。沒有進入一個無限循環當然:-)

我也打開其他解決方案。 (但我不能改變指向abc.cfm文件的鏈接,我不希望有一個301重定向到abc.html文件)

+0

我不這麼認爲。請求的URL最終會成爲相同的資源URL,並且會進入無法控制的循環。檢查此[答案](http://stackoverflow.com/questions/13832468/how-to-stop-htaccess-loop/13832827#13832827) –

回答

0
Redirect 301 /abc.html /abc.cfm 

將這個線你RewriteEngine on指令之前。

如果你想這樣做的mod_rewrite的,你可以改用以下:

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

這將強制用戶的瀏覽器只能夠請求.CFM頁面,而在內部服務器知道到從.html頁面抓取內容。此規則需要在上面列出的內部重寫規則之前,但在RewriteEngine on指令之後。

+0

頂級的解決方案似乎沒有做任何事情。這兩個頁面仍然可以訪問。第二種解決方案我已經嘗試過了,但它讓我陷入了一個無限循環:Firefox已經檢測到服務器正以一種永遠不會完成的方式重定向這個地址的請求。 – Rick