RewriteRule或301重定向

时间:2012-02-03 19:30:52

标签: mod-rewrite redirect

我从朋友那里继承了一个在ColdFusion中完成的网站。所有网址都像: index.cfmfilename.cfm?xid=MN

我做了这样简单的规则:

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

依旧......

1 个答案:

答案 0 :(得分: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]