[英]IIS 8 Url Rewrite to Ignore Directory
我正在尝试设置一个 IIS 8 网站。 我想忽略输入的 url 的最后一个目录,但不是删除它,而是忽略它。 目录名称可以是任何东西
解释
网站网址: https : //mywebsite.com
该站点有一个名为/stores
的目录,其中有一个完整的网站。
该网站将使用 URL 中不存在的目录/somename
来正确呈现网站。
如果我输入https://mywebsite.com/stores/somestore
显然我会得到404 Not Found
因为目录somestore
在stores
内不存在
我如何编写 IIS 规则来忽略不存在的 URL 目录的最后一部分,但也将其保留在 URL 中,以便 PHP 可以使用它来正确呈现页面。
有点像 Facebook,通过在 URL 中添加/profilename
来访问个人资料。
注意:由于一些技术冲突,我无法为此使用 URL 参数。
随意更新这个问题的标题,我不确定它是否完全正确。
基本上,如果您现在在文件夹 /questions 之后查看 stackoverflow 上的地址栏,则应该有一个名为 ThisQuestionsId (55762513) 的目录。 但是在实际服务器中是否有一个具有该名称的文件夹? 我认为不是。 我想知道这是如何实现的。
至于如果你想通过使用IIS url重写来实现像stackoverflow这样的url格式。
我建议您可以参考以下规则。
它会将https://mywebsite.com/question/55553重写为https://mywebsite.com/question.php?id=55553
这意味着您可以在 question.php 页面中编写逻辑来选择数据并根据查询字符串 id 的值显示它。
<rewrite>
<rules>
<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
<match url="^question/([^/]+)/?$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="question.php?id={R:1}" />
</rule>
</rules>
</rewrite>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.