Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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
Url rewriting (ISAPI_Rewrite)在请求特定文件时重写域_Url Rewriting_Isapi Rewrite - Fatal编程技术网

Url rewriting (ISAPI_Rewrite)在请求特定文件时重写域

Url rewriting (ISAPI_Rewrite)在请求特定文件时重写域,url-rewriting,isapi-rewrite,Url Rewriting,Isapi Rewrite,我试图创建一个条件,当请求中包含foo/foofile.txt时,将url从重写为。如果有人能给我指出正确的方向,我将非常感谢所有的帮助 提前感谢,, B这是将特定子域重定向到特定文件的主域 您使用的是哪个版本的isapi_重写,v2还是v3 这假设v3: RewriteCond %{HTTP:Host} ^subdomain\.(.*)$ RewriteRule ^(/foo/foofile3\.txt)$ http://%1$1 [NC,R=301] RewriteCond测试一个以子域(

我试图创建一个条件,当请求中包含foo/foofile.txt时,将url从重写为。如果有人能给我指出正确的方向,我将非常感谢所有的帮助

提前感谢,,
B

这是将特定子域重定向到特定文件的主域

您使用的是哪个版本的isapi_重写,v2还是v3

这假设v3:

RewriteCond %{HTTP:Host} ^subdomain\.(.*)$
RewriteRule ^(/foo/foofile3\.txt)$ http://%1$1 [NC,R=301]
RewriteCond测试一个以子域(和一个点)开头的主机,并捕获其余的主机(example.com),以方便重写规则。您也可以将特定的example.com放在那里,但这会使它更通用

然后,RewriteRule查找特定的/foo/foofile3.txt并捕获它(同样是为了方便在规则中不重复它)。对于条件(example.com)中的捕获,结果为%1;对于规则(/foo/foofile3.txt)中的捕获,结果为$1

NC不区分大小写,R=301是永久重定向

在v3中,querystring参数会自动处理,因此这会保留文件后面的所有参数

使它更复杂一些的其他可能是任何子域,或者文件名模式,而不是一个特定的文件

在获得正确的规则时,浏览器缓存我的尝试时遇到了问题。因此,即使我更改了规则,浏览器也缓存了我以前的重定向。我的快速修复方法是计算新URL的文件名:foofile2,foofile3(我想我是在第三次尝试时得到的…)。我也可以每次都清除浏览器缓存;这样更快