Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mod rewrite 重写规则或301重定向_Mod Rewrite_Redirect - Fatal编程技术网

Mod rewrite 重写规则或301重定向

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

我从我的朋友那里继承了一个网站,它是在ColdFusion中创建的。所有URL都类似于: index.cfm,filename.cfm?xid=MN

我制定了如下简单规则:

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一起工作,没有它就无法工作: