在服务器中,我们使用带有 PHP、PHP 管理器的 Internet 信息服务 (IIS)。我想隐藏“dava”参数,不仅针对 /kovusturma-sartlari/onodeme/ 页面,在整个网站中“dava”键应该隐藏并且应该是页面/值。
当前网址:http://localhost/kovusturma-sartlari/onodeme?dava=f2b80bf7
预期网址:http://localhost/kovusturma-sartlari/onodeme/f2b80bf7
我目前的规则:
<rewrite>
<rules>
<rule name="Add .php extension" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}.php" matchType="IsFile" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_URI}" pattern="^/home" negate="true" />
</conditions>
<action type="Rewrite" url="{R:1}.php" />
</rule>
<rule name="Rewrite to /home" stopProcessing="true">
<match url="^(.*[^\\]+)$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/home/{R:1}.php" />
</rule>
</rules>
</rewrite>
我试过:
<rule name="Hide Query String" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{QUERY_STRING}" pattern="dava=(.+)" />
</conditions>
<action type="Rewrite" url="{R:0}/{C:1}" appendQueryString="false" />
</rule>
也许试试这个?
<rule name="Hide Query String" stopProcessing="true">
<match url="^([^?]*)(\?.*)*$" />
<conditions>
<add input="{QUERY_STRING}" pattern="dava=(.+)" />
</conditions>
<action type="Rewrite" url="{R:1}/{C:1}" appendQueryString="false" />
</rule>
您可以参考这篇文章,文章中的示例将帮助您了解如何创建正确的重写规则.
如果你想隐藏/kovusturma-sartlari/onodeme/页面的“dava”参数,你可以尝试以下规则:
当前网址: http://localhost/kovusturma-sartlari/onodeme?dava=f2b80bf7
预期网址:http://localhost/kovusturma-sartlari/onodeme/f2b80bf7
<rule name="Hide Query String">
<match url="^kovusturma-sartlari/onodeme/([0-9a-z]+)" />
<action type="Rewrite" url="kovusturma-sartlari/onodeme?dava={R:1}" />
</rule>
如果需要在整个网站隐藏“dava”键,需要根据自己网站的具体情况修改规则,如:
<rule name="Hide Query String">
<match url="(.*)/([0-9a-z]+)" />
<action type="Rewrite" url="{R:1}?dava={R:2}" />
</rule>
另外,当你的IIS rewrite rules出现问题时,你可以尝试使用Failed Request Tracing来追踪rewrite rules进行故障排除,你可以看到内部是如何使用这些规则的。