2012-02-03 99 views
0

我從我的朋友那裏繼承了一個在ColdFusion中完成的網站。所有URL,如: index.cfmfilename.cfm?xid=MNRewriteRule或301重定向

我做了簡單的規則是這樣的:

RewriteRule filename.cfm filename.php 

,並沒有爲頂層文件的工作。

但現在我正在第二級文件,他們有像這樣的鏈接:filename.cfm?id=wanted&xid=MN至極想打開另一個頁面,問題是,當我寫這篇文章:

RewriteRule filename.cfm?id=wanted&xid=MN folder/filename.php 

這是行不通的。我知道這對精明的開發者來說是一個愚蠢的問題,但我是一個新手,我需要幫助。請提出解決方案。非常感謝。

The pattern of those urls: 
I have         I need 
/fileone.cfm?id=overview&xid=MN  /folderone/overview.php 
/fileone.cfm?id=wanted&xid=MN   /folderone/wanted.php 
/fileone.cfm?id=services&xid=MN  /folderone/services.php 


/filetwo.cfm?id=overview&xid=MN  /folderwto/overview.php 
/filetwo.cfm?id=wanted&xid=MN   /folderwto/wanted.php 
/filetwo.cfm?id=services&xid=MN  /folderwto/services.php 

等等....

+0

我不知道爲什麼你有興趣在冷聚變看起來像PHP,你能否詳細說明? – 2012-02-03 19:33:09

+0

有很多inboint鏈接到ColdFusion頁面 – 2012-02-03 19:59:35

+0

_'RewriteRule filename.cfm filename.php' 它做了頂級文件的工作._你的意思是什麼工作?你正在將'.cfm'指向'.php'文件! – ThinkingMonkey 2012-02-03 20:22:49

回答

0

添加以下到.htaccess文件在您的網站的根目錄。

RewriteEngine on 
RewriteBase/

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /file(one|two)\.cfm\?id=([^&]+)&xid=MN [NC] 
RewriteRule^/folder%1/%2.php? [L] 

這將適用於上面所要求的所有重寫,例如,當用戶要求/fileone.cfm?id=overview&xid=MN時,他們將獲得/folderone/overview.php

如果你想301重定向用戶更改的最後一個規則

RewriteRule^/folder%1/%2.php? [L,R=301] 
+0

感謝您的解決方案!它確實重定向,但它也改變了URL,以及我鬆散PR:(( – 2012-02-03 21:31:18

+0

是否有一種方法可以保存URL /filetwo.cfm?id=overview&xid=MN的外觀,但顯示目錄中的另一個文件? – 2012-02-03 21:32:35

+0

@AntonPotapenko如果您將'R' '[L]',它不應該重定向,如果你使用'[L,R = 301]',它會重定向,你會暫時失去PR,但它會在一段時間後轉移到新的URL上 – 2012-02-03 21:40:13