我从朋友那里继承了一个在ColdFusion中完成的网站。所有网址都像:
index.cfm
,filename.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
依旧......
答案 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]