Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.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
Php 使用其他操作重写URL_Php_Iis_Url Rewriting - Fatal编程技术网

Php 使用其他操作重写URL

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有什么方法可以做到这一点吗?出于某种原

我目前有一个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有什么方法可以做到这一点吗?

出于某种原因,我无法使您的正则表达式与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吗?