Php 使用其他操作重写URL
我目前有一个PHP web应用程序,它接受URL为:/page.3,索引文件获取数字,并使用它:Php 使用其他操作重写URL,php,iis,url-rewriting,Php,Iis,Url Rewriting,我目前有一个PHP web应用程序,它接受URL为:/page.3,索引文件获取数字,并使用它: /page.3 > $_GET['id'] = 3 IIS URL重写模式为: ^([^/]+/)*([^/]+/)\.(\d+)$ 它产生index.php?id={R:3} 但是,我希望能够指定其他参数,例如 /page.3&do=4 > $_GET['id'] = 3 and $_GET['do'] = 4 使用IIS重写或PHP有什么方法可以做到这一点吗?出于某种原
/page.3 > $_GET['id'] = 3
IIS URL重写模式为:
^([^/]+/)*([^/]+/)\.(\d+)$
它产生index.php?id={R:3}
但是,我希望能够指定其他参数,例如
/page.3&do=4 > $_GET['id'] = 3 and $_GET['do'] = 4
使用IIS重写或PHP有什么方法可以做到这一点吗?出于某种原因,我无法使您的正则表达式与url中的
/page.3
之类的内容匹配,因此我提出了自己的解决方案:
<rewrite>
<rules>
<rule name="RWW" enabled="true" stopProcessing="true">
<match url="((.+)\.(\d+))" />
<action type="Rewrite" url="index.php?id={R:3}" />
</rule>
</rules>
</rewrite>
默认情况下,重写器将附加您的查询字符串。如果您的重写规则在最终url中包含查询字符串,您可以使用/page.3?do=4并从$\u get获取…我已经尝试过了,但我会尝试重新开始不知道IIS,但在apache中,有一个重写设置,表示apache在重写/重定向之后追加查询字符串-[QSA]。根据IIS的@yent和可能正确的设置,您应该能够以@yent显示:/page.3?do=4或/page.3/?do=4的方式调用您的页面。如果我可以获得Apache重写,那么我可以将其转换为IIS:)这是IIS7 URLEwriter吗?