【发布时间】:2021-02-07 17:22:39
【问题描述】:
我花了几个小时试图找到一种方法(我并不真正掌握纠结的 IIS 文档),以使 URLS 友好,同时在公用文件夹中保留一个入口点。我的意思是,当用户键入时:
"localchosy/myproject/route1"
在内部,规则将其重定向到:
"localhost/myproject/public/index.php/route1"
我写的规则是(我认为)像魅力一样工作,是:
<system.webServer>
<rewrite>
<rules>
<!-- REWRITING INDEX.PHP -->
<rule name="Default" stopProcessing="true" >
<match url="[/^myproject$/]{1}(.*)" />
<action type="Rewrite" url="myrpoject/public/index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
尽管我仍然需要添加 https 强制并阻止对文件夹的直接访问,但它确实奏效了(该应用程序仍处于测试阶段)。但是,令我惊讶的是,当我写的时候
localhost/phpmyadmin
被重定向的服务器改写为
localhost/myproject/public/index.php/phpmyadmin
很明显,我对这些规则不太了解。我认为“匹配”标签意味着该规则仅在存在正则表达式匹配时才应用,但显然并非如此......事实上,我在匹配标签内使用的带有 url 属性的前缀正在做没什么……我不明白。
如何使规则仅适用于以“myproject”开头的 URL...
PS:目前我在 inetub/wwwroot 中有 web.config 文件,位于项目的同一级别。
谢谢。
【问题讨论】:
标签: iis url-rewriting web-config friendly-url