繁体   English   中英

IIS 8 Url 重写以忽略目录

[英]IIS 8 Url Rewrite to Ignore Directory

我正在尝试设置一个 IIS 8 网站。 我想忽略输入的 url 的最后一个目录,但不是删除它,而是忽略它。 目录名称可以是任何东西

解释

网站网址: https : //mywebsite.com

该站点有一个名为/stores的目录,其中有一个完整的网站。
该网站将使用 URL 中不存在的目录/somename来正确呈现网站。

如果我输入https://mywebsite.com/stores/somestore显然我会得到404 Not Found因为目录somestorestores内不存在

我如何编写 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM