Mod rewrite 重写规则或301重定向
我从我的朋友那里继承了一个网站,它是在ColdFusion中创建的。所有URL都类似于: index.cfm,filename.cfm?xid=MN 我制定了如下简单规则:Mod rewrite 重写规则或301重定向,mod-rewrite,redirect,Mod Rewrite,Redirect,我从我的朋友那里继承了一个网站,它是在ColdFusion中创建的。所有URL都类似于: index.cfm,filename.cfm?xid=MN 我制定了如下简单规则: RewriteRule filename.cfm filename.php 它为顶级文件做了工作 但是现在我正在处理第二级文件,它们有如下链接:filename.cfm?id=want&xid=MN,假设要打开另一个页面,问题是当我写这个时: RewriteRule filename.cfm?id=wanted&x
RewriteRule filename.cfm filename.php
它为顶级文件做了工作
但是现在我正在处理第二级文件,它们有如下链接:filename.cfm?id=want&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
依此类推……将以下内容添加到站点根目录中的.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]
我不知道你为什么对使Cold Fusion看起来像PHP感兴趣,你能详细说明一下吗?有很多指向ColdFusion页面的点内链接writerule filename.cfm filename.PHP,它为顶级文件做了工作。你说它有效是什么意思?您正在将.cfm定向到.php文件!好的,我希望当访问者请求file.cfm我的file.php时会显示,重写就是这样做的,不是吗?我有长字符串的问题。如果我这样说:谢谢你的解决方案!它确实重定向了,但它也改变了URL,我失去了PR:有没有办法保存URL/filetwo.cfm的外观?id=overview&xid=MN但显示目录中的另一个文件?@AntonPotapenko如果你省略了R,即仅仅是[L],它不应该重定向。如果您使用[L,R=301],它将重定向,您将暂时失去PR,但它将在一段时间后转移到新的URL。出于某些原因,它与R=301一起工作,没有它就无法工作: