URL重写:from.htaccess

URL重写:from.htaccess,.htaccess,iis,.htaccess,Iis,我又来了,这次带着一些我不知道的东西,因为我从来没有用过它。是关于.htaccess的 它正在转换为IIS,但我认为失败来自我的.HTACCESS行。我说的是下面这句话 RewriteRule ^ref([^.]+)$ /quickregister/start?ref=$1 我想要的结果是http://example.com/ref/VALUE1。然而,这条规则给了我这个;404错误 Requested URL http://example.com:80/quickregister/

我又来了,这次带着一些我不知道的东西,因为我从来没有用过它。是关于.htaccess的

它正在转换为IIS,但我认为失败来自我的.HTACCESS行。我说的是下面这句话

RewriteRule ^ref([^.]+)$ /quickregister/start?ref=$1
我想要的结果是
http://example.com/ref/VALUE1
。然而,这条规则给了我这个;
404错误

Requested URL      http://example.com:80/quickregister/start?ref=/VALUE1.php
Physical Path      C:\inetpub\wwwroot\quickregister\start

你说的“我想要的结果是……”是什么意思?您给出的“请求的URL”是您正在请求的URL(这就是您所说的),还是重写后得到的URL?如果它是“请求的URL”,那么您上面发布的
重写规则
指令没有做任何事情。它没有做任何事情,它应该链接到的链接,但它显示了一个404。根据上面的指令,
/ref/VALUE
将在内部重写为
/quickregister/start?ref=/VALUE
-注意斜线。您是否需要斜杠(您已经给出了带斜杠和不带斜杠的示例)?在.htaccess文件中是否有其他指令?尝试将其更改为外部重定向,以确保正在处理该指令。即,在该指令末尾添加
[R,L]
。请注意,当前指令中没有
L
标志,因此任何后续指令都将被处理,并可能覆盖此指令。我不需要斜杠,因为他需要使用GET变量REF转到start.php。使用反斜杠,IIS不会将其识别为链接,因为它将文件名视为REF=/value1.php,不使用var启动.php。如果不希望在替换中使用斜杠,请将其从捕获的组中删除。例如,
^ref/([^.]+)$
。但是如果“他需要转到
start.php
”,为什么要重写到
start
?“使用反斜杠时,IIS不会将其识别为链接”-这些是(正向)斜杠,而不是反斜杠。如果它将文件名视为
ref=/value1.php
,则无法正确解释查询字符串。它在什么时候被转换成IIS(web.config?)指令?或者这个.htaccess文件是由IIS使用类似的方式直接处理的?